2
我该如何编写这个文件,以便它在没有硬编码的情况下通过1
。鸡和鸡蛋。RSpec should_receive宏,其中包含需要测试的内容的ID
@sender = Factory(:user)
@receiver = Factory(:user)
mailer = double
mailer.should_receive(:deliver)
Mailer.should_receive(:email).with(1, @sender.id, @receiver.id).and_return(mailer)
# This will create an object with id #1 to make this test pass
@object = Object.create(:sender => @sender, :receiver => @receiver)
我觉得rspec的使用应该-的匹配,以验证“should_receive”预期参数,否则东西像什么()不能工作?我的想法是编写一个自己的参数匹配器,它匹配数据库中的第一个id。 –
虽然这仍然是一个抽象的问题,但我在我的具体问题中解决了这个问题。我在'test.rb'中调用了交付,并使用'ActionMailer :: Base.deliveries'来测试邮件。 – maletor