我有一个 Rails 控制器,我想测试一个方法test_method
。
class ActiveController < ActionController::Base
def test_method
user = acc_users.all_users.find params[:id]
if !user.active?
user.call_method!
end
end
end
我必须测试call_method
没有被调用。这是我想出的,但我认为这不会奏效。
it "should not call call_method" do
u = user(@acc)
put :test_method, :id => u.id
expect(u).not_to have_received(:call_method!)
end
我在这里关注了这个问题,发现它几乎相似,只是被调用的方法在另一个类中。当我尝试上面的代码时,我收到一条错误消息,例如“预期对象要响应has_received?
”
我相信我将无法使用给定的设置对此进行测试,因为用户没有被注入test_method
.
call_method
是对将作业排入队列的方法的调用,因此我想确保它不会被调用。
我将如何测试这种方法?