我正在测试我的一个邮件程序,并且我有一个控制器测试,它只是断言邮件程序被调用(与email_spec 中的示例非常相似)。
# spec/controllers/friendships_controller_spec.rb
it "sends an email when someone sends you a contact request" do
NotificationMailer.any_instance.should_receive(:contact_request).with(default_user, user)
xhr :post, :create, {:friendship => {:friend_id => user.id}}
end
由于nil
在contact_request 的模板中设置了一个变量,此规范失败。所以看起来......该contact_request
方法实际上正在执行和呈现它的模板,即使我已经模拟了该方法。怎么会?
如果它有任何不同,模板在实际应用程序中渲染得很好——在这个特定的规范中,变量只设置为 nil。