私がテストするための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'を使用して別の期待値を追加すると、テストは合格になります。しかし、私は、(他の呼び出しはこのテストケースに無関係であるため)「withdraw」パラメータで呼び出しに集中できるような方法があるかどうかは疑問です。
Iは、[API](http://gofreerange.com/mocha/docs/Mocha/Expectation.html#with-instance_method)がリテラル値(変数への直接比較を)サポートされている、またはブロックに得認識していたが、私は 'Not(...) '構造体がどこから来るのか分かりません。それについてもっと詳しく話すことができますか? – Pysis
@Pysis 'ないが()' '')(と一緒に使用されている[モカ:: ParameterMatchers](http://gofreerange.com/mocha/docs/Mocha/ParameterMatchers.html)から来ています。彼らは ')(has_key'等HasKey() 'またはヘビ場合'のようなキャメルケースとすることができます。 'Not'は、それはしかし、キーワードだからキャメルケースである必要があります。 –