例如:
我运行测试并且所有断言都通过,但我再次运行测试,在我的情况下,我收到以下错误:
验证失败:已收到电子邮件
似乎在添加:sequence(:email){| n |对于女工来说,“nobody#{n} @ xyz.com”}是没有意义的
测试似乎有时会通过,而其他测试因错误原因而失败。
请告知问题/解决方案。
答案 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)块中处理清理。