簡體   English   中英

Rspec運行測試導致驗證錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM