如果没有Spork,Rspec应该没有工作

时间:2012-04-17 16:14:29

标签: rspec2 spork

我们正在使用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
一切正常。所以似乎匹配方法正在查看错误的计数。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我正在使用shoulda gem来测试关系。我有Instance类,它有很多WeeklyStatistics,我第一次运行:

should have_many(:weekly_statistics)

使用spork测试是红色的,表示我应该将foreigh key instance_id设置为每周统计数据,但是在我完成之后,测试仍然失败并出现相同的错误 - 缺少关联。然后我停止了spork,测试是绿色的。