2012-02-14 92 views
1

我一直在嘗試黃瓜爲我們的項目創建新的功能,但很難找到一種方法來對真實數據運行測試。我必須用Factory Girl創建一切實體,以便正確運行它們,我做錯了嗎?或黃瓜它只是一步一步地做每一步,創造假數據?嘗試牛排方法會更好嗎? (Rspec的-水豚)?有沒有辦法用真實的生產數據來運行黃瓜測試?

請讓我知道,如果有人遇到這個問題,當一個項目已經運行了一堆功能,並且您正在將TDD-BDD添加到您的職責中。

+3

您可以簡單地將生產數據庫複製到測試環境,並使用真實模型而不是模擬。 – 2012-02-14 14:59:58

+0

但每次運行黃瓜測試時,由於種子.rb文件,它會從中刪除所有數據,然後在測試結束時會截斷所有內容,是否有解決此問題的方法? – 2012-02-14 15:07:58

+0

什麼是牛排方法? – tr9sh 2012-02-15 11:58:04

回答

1

FactoryGirl和其他fixture庫的目的是生成數據而不依賴於生產導入。從生產中導入數據以運行測試表明,您正在測試的行爲實際上並不是生產過程中發生的行爲。

新功能或舊功能,如果您的行爲已知,然後用黃瓜定義它。從小處着手,選擇一項簡單的功能並創建您的.feature文件。定義你的step_definitions你知道什麼是正確的行爲。那麼如果你的測試失敗了,那麼在你的應用程序代碼而不是黃瓜中修復它。

確保您的步驟定義正在進行黑盒測試。他們不需要知道他們正在測試的函數的內部狀態,他們只想使用已知的輸入並測試結果。

+0

好吧我瞭解工廠女孩prupose,但如果我添加新的功能到現有的應用程序,沒有以前的黃瓜測試,那麼我需要有真實的數據來驗證一個全新的功能,因爲依賴關係和實體之間的關係,所以我現在對你的問題是,黃瓜只是定義你認爲它可能在已經開始的項目中工作的場景,並且你從一開始就沒有數據構建每個功能,但是你的假設是,我正確? – 2012-02-14 17:05:03

相關問題