[英]Rspec Running Tests Results in Validation Errors
例如:
我運行了一個測試並且所有斷言都通過了,但是我再次運行了測試,對於我來說,我收到以下錯誤:
驗證失敗:電子郵件已經被接收
似乎添加了:sequence(:email){| n | “ factorygirl的“ nobody#{n}@xyz.com”}毫無意義
測試有時會通過,而其他測試則由於諸如此類的錯誤原因而失敗。
請就問題/解決方案提出建議。
在運行測試用例之前,請嘗試從表中刪除所有記錄。
例如:-
describe User do
before(:each) do
User.delete_all
end
it "validate e-mail" do
(do staff..)
end
end
我不確定這是否是一個確定的解決方案,但是我在使用lazy屬性的帶有factorygirl的工廠的產品參考中添加了隨機數。
例:
FactoryGirl.define do
factory :product do
reference {"AB"+rand(999).to_s}
description "Test Product"
quantity {(1..9999).to_a.sample}
price_per_unit {((1..999999).to_a.sample)/100.to_f}
end
end
您是否有任何“ before(:all)”塊? 也許您缺少相應的“ after(:all)”來清理數據。 before(:each)充當事務,因此可以清理數據庫,before(:all)像普通查詢一樣工作,您必須在after(:all)塊中進行清理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.