2011-11-02 134 views
0

我一直在組織控制器/動作/場景或模型/方法/場景的層次結構測試用例。它看起來很自然和清晰。但是我發現我必須爲同一場景的不同動作和方法重複設置測試數據。雖然我可以通過代碼重用來減少代碼冗餘。但我認爲,特別是機器一次又一次地設置這些測試數據仍然是浪費時間。有沒有人按情景組織這些測試用例?組織測試用例的最佳方式是什麼?組織Rails功能和單元測試用例的最佳方式是什麼?

+0

是否使用測試::單位或RSpec的? –

+0

我一直在使用rspec。這是否依賴於測試框架?我認爲這是一個普遍的問題。 – Innerpeacer

回答

2

如果這個問題是關於生成測試數據,你或許應該看看下面的寶石,可幫助在重複自己,你生成測試數據:

如果這個問題是關於延遲運行測試時,你應該看看spork

而如果這個問題是關於組織測試,我認爲一種很常見的方法是將測試分爲單元測試和功能測試。

在單元測試中逐個測試所有的方法。並測試功能測試中的所有場景。

規格/單元/ user_spec.rb

describe "#generate_password_salt" do 
    user = User.new(password: 'foobar') 
    user.generate_password_salt.should == '1231asdas' 
end 

規格/功能/ user_spec.rb

describe "when creating new user" do 
    it "should generate password salt" do 
    ... 
    end  
end 
+0

其實我的問題是在組織這些單元測試/功能測試中是否有一般的模式。通過方法(動作)然後通過場景來組織它們看起來很自然。但是我發現我總是不得不一次又一次地設置類似的測試數據集。儘管Factory Girl等工具有助於減少設置測試數據的工作量,但我仍然想知道是否可以組織這些測試,以便他們可以共享同一組測試數據。但現在我認爲這可能取決於我們正在開發的應用程序。 – Innerpeacer

相關問題