テストする Rails コントローラー アクションがあります。そのアクションでは、メソッド User.can? 異なるパラメータで数回呼び出されます。そのテスト ケースの 1 つで、User.can?('withdraw') が呼び出されることを確認したいと思います。しかし、User.can の呼び出しは気にしませんか? 他のパラメータで。
def action_to_be_tested
...
@user.can?('withdraw')
...
@user.can?('deposit')
...
end
テストで以下を試しました:
User.any_instance.expects(:can?).with('withdraw').at_least_once.returns(true)
しかし、User.can?('deposit') の予期しない呼び出しを示すメッセージが表示され、テストは失敗しました。パラメータ「deposit」を使用して別の期待値を追加すると、テストに合格しました。しかし、「withdraw」パラメーターを使用した呼び出しに集中できる方法があるかどうか疑問に思っています (他の呼び出しはこのテスト ケースとは無関係であるため)。