2010-08-12 37 views
0
  1. 我有一對複雜的對象用於存根(我使用的gem實例)。我在哪裏可以集中這些存根以使其可用於所有測試?一些Rails單元測試問題(使用Shoulda + Factory女孩)

  2. 如何以編程方式清除不帶耙測試之間的數據庫:test?我想通過textmate快速運行單個測試,但是這樣做會出錯,因爲它不會在測試之間清除數據庫

  3. 由於必須啓動Rails實例,測試運行緩慢。如何加快測試?特別是在寫入測試,並希望快速運行改變

+0

另一種選擇,而不是通過Textmate運行測試 - 使用自動測試; http://ph7spot.com/musings/getting-started-with-autotest – house9 2010-08-12 14:27:35

回答

2

1)你可以把他們在test_helper.rb中,使它們適用於所有的測試,或者您可以編寫自己的模塊,它包含這些方法,然後包括該模塊在需要這些存根的測試中。

2)您可以在您的測試設置方法來剔除那些你不再感興趣的模型把Model.destroy_all(或.delete_all如果合適的話這將是更快)。

不過,如果你正在運行的測試中事務(並且您的數據庫支持事務),那麼您不需要清除任何數據,因爲創建數據和測試將在事務中運行,然後該事務將自動回滾清除數據。

3)對此不太確定。我在Windows上開發了這個問題,但在* nix上沒有這麼多。你可以考慮進行某種持續測試,但反饋仍會延遲。可能值得研究什麼是導致rails環境開始如此緩慢的原因 - 這可能是您在測試環境中可能跳過的內容。