2011-01-24 83 views
2

我一直在經歷邁克爾·哈特爾的教程http://railstutorial.org/,並在大多數情況下它已經在開始使用Rails的一個巨大的幫助。本書非常關注TDD,這很好,因爲我想學習TDD,但問題是90%的測試失敗,出現錯誤「電子郵件已被採納」。我認爲發生的情況是,當測試運行時,它會按照本書中的建議創建一個電子郵件爲「[email protected]」的用戶。問題是當第二個測試運行需要創建一個用戶時,它使用相同的「[email protected]」電子郵件地址。我知道有一些解決方法我使用factory girl創建了一系列電子郵件地址,但我不應該這樣做才能從教程中正確地運行示例。Ruby on Rails的教程TDD「電子郵件已經採取」

有沒有其他人遇到這個問題?由於缺乏關於這個特定主題的問題,我認爲這是我的代碼中的一個錯誤,但也許有人遇到過這個問題。

回答

2

衛生署!問題是一條註釋行:

config.use_transactional_fixtures = true 

in spec_helper.rb!

新手的錯誤。

0

你應該在題目搜索,如何在每次試驗後清理數據庫。問題也可能是由你從裝置加載的默認用戶造成的,然後當你再次在測試中創建hin時,但如果你說90%,它就好像是第一種情況。 我沒有附加鏈接,因爲當你使用rspec,test :: unit或者cucumber時,它們會有所不同,它們每個都有它的特權。

快樂編碼!

0

我最近也遇到過這個問題。測試數據庫應該在測試後進行清理,但由於某些原因,測試數據庫不是。我所做的只是運行'rake db:reset'來重置所有內容,然後確保我使用了工廠(Factory Girl)。只要嘗試使用固定裝置或工廠,以確保您確實沒有碰到數據庫。

+0

耙分貝:復位不解決它,我和我使用的廠房爲好。 第一次測試的測試結果: 89個示例,49次失敗 第二次測試: 89次示例,51次失敗 – Adam 2011-01-28 21:44:55

0

我在CH 11的末尾看到了類似的行爲。我的spec_helper.rb是正確的。這個固定爲我:

重啓 「軌道的」
重新啓動自動測試
耙分貝:重置
耙分貝:遷移
耙分貝:測試:準備
耙分貝:填充

HTH , 佩裏

相關問題