Rspec运行测试导致验证错误

时间:2013-11-23 00:31:56

标签: ruby-on-rails rspec factory-bot

例如:

我运行测试并且所有断言都通过,但我再次运行测试,在我的情况下,我收到以下错误:

验证失败:已收到电子邮件

似乎在添加:sequence(:email){| n |对于女工来说,“nobody#{n} @ xyz.com”}是没有意义的

测试似乎有时会通过,而其他测试因错误原因而失败。

请告知问题/解决方案。

3 个答案:

答案 0 :(得分:0)

在运行测试用例之前尝试删除表中的所有记录。

例如: -

describe User do
  before(:each) do
    User.delete_all
  end

  it "validate e-mail" do
   (do staff..)
  end
end

答案 1 :(得分:0)

我不确定这是一个明确的解决方案,但我在工厂中使用懒惰属性的工厂的产品参考中添加了随机数字。

示例:

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

答案 2 :(得分:0)

你有“之前(:全部)”块吗?也许你错过了相应的“after(:all)”来清理数据。 before(:each)充当事务,因此数据库被清理,在(:all)像普通查询一样工作之前,你必须在after(:all)块中处理清理。