我们正在使用Spork和Rspec,如果我们运行Spork,我们的测试通过,但如果我们不开始spork并运行测试:
bundle exec rspec spec
发生了几次失败,所有失败都是使用了should.have语法,如:
inactive_user.received_messages.should have(1).message
1) Message introduction messages to active users should be created as messages to both users
Failure/Error: initiator.sent_messages.should have(1).message
expected 1 message, got 6
这个数字的有趣之处在于,数据库总数中有多少消息,所以:
initiator.sent_messages.should have(1) == Message.count
没有Spork,如果我修改测试,如:
inactive_user.received_messages.count.should == 1
一切正常。所以似乎匹配方法正在查看错误的计数。知道为什么会这样吗?
答案 0 :(得分:0)
我有同样的问题。我正在使用shoulda gem来测试关系。我有Instance类,它有很多WeeklyStatistics,我第一次运行:
should have_many(:weekly_statistics)
使用spork测试是红色的,表示我应该将foreigh key instance_id设置为每周统计数据,但是在我完成之后,测试仍然失败并出现相同的错误 - 缺少关联。然后我停止了spork,测试是绿色的。