1
A
回答
0
是的,有幾種方法可以解決這個問題。默認情況下,語法的RSpec
before do
end
相同
before :each do
end
這意味着塊之前內的代碼是EACH規格之前調用。
然而,還可以使用:
before :all do
#...
end
曾經運行包圍代碼中定義它的描述(或其別名上下文)塊。但是,您應該謹慎使用before :all
,因爲這意味着您的測試將不再獨立運行,具體取決於您在before :all
塊中定義的內容。
如果要編寫在整個套件之前運行一次的代碼,還可以在(:suite)和之後(:suite)之前的選項中指定spec_helper文件中的RSpec配置。
更常見的方法是使用名爲'let'的RSpec方法,它接受一個參數和一個塊。它看起來是這樣的:
設(:富){FactoryGirl.create:用戶}
簡而言之,該let
方法創建一個方法別名foo
,在返回返回塊(價值FactoryGirl.create :user
上面的例子)。好處是(1)它緩存這個變量,所以這個塊只獲取一次,(2)它被延遲評估,因此只有在你的測試中調用foo後,它纔會運行並緩存塊中的值。重要的是要記住,有時這種懶惰的評估可能會在某些情況下導致意外的行爲。您可以使用let!
來防止延遲加載。 let
方法在任何before
語句之前運行,因此您可以在before
塊中使用由let
定義的任何方法。
最後,有一個名爲FactoryGirl Seeds的項目,它允許您在spec_helper中定義只能運行一次的生成器。沒有太多的使用它,所以我不知道它有多可靠,但你可以在這裏找到更多的信息:
相關問題
- 1. 我應該在哪裏放置RSpec測試的種子數據?
- 2. 我可以在哪裏調用我的函數,以便測試它?
- 3. 我在哪裏可以找到一些GPS單元測試數據?
- 4. 我可以在哪裏測試Rails中ENV值的存在性?
- 5. 我在哪裏可以找到.NET Framework的單元測試?
- 6. 在哪裏測試這種情況?
- 7. 我在哪裏可以獲得Android Mediaframeworktest測試媒體文件?
- 8. 我在哪裏可以放置Buildr Integration測試?
- 9. 我可以在哪裏找到ETL測試錯誤消息?
- 10. laravel4我可以在哪裏找到測試案例?
- 11. 我可以在哪裏找到Symfony2單元測試?
- 12. 哪裏可以過濾多播數據包?
- 13. 哪裏可以找到我的數據庫在我的iPhone?
- 14. 獲取rake測試以播種數據庫first
- 15. 哪裏可以找到免費使用的複雜測試數據庫?
- 16. 我在哪裏可以把我的數據使用Ember.js
- 17. 我可以從哪裏去?
- 18. 我在哪裏可以從
- 19. 我在哪裏可以找到移動模擬器來測試我的網站?
- 20. 我在哪裏可以找到用於測試可視化軟件的豐富數據集?
- 21. 哪裏可以找到Sqlite數據庫?
- 22. 我在哪裏可以找到數據來測試我的CSP地圖着色求解器
- 23. 使用reactjs時,我可以將複雜邏輯放在哪裏以便測試?
- 24. 我在哪裏可以獲得測試樣式表以便能夠使用xsltproc?
- 25. 哪裏可以放置eunit的測試文件?
- 26. 我在哪裏可以下載PlayFramework 2.6的最新測試版,以便我可以在Scala 2.12中使用它?
- 27. 我可以在哪裏瞭解不同類型的數據庫?
- 28. 我在哪裏可以找到Sage的費用數據?
- 29. 我可以在哪裏定義atk4中的數據庫/表名?
- 30. 我在哪裏可以找到OpenStreetMap數據庫的ERD?