2016-07-13 7 views
0

WhenCalledは全面的に文書化されています&私はなぜそれを使用しているのかはわかりませんが、私がトピックで見たすべての記事を非実践的に詳述したのと同じ方法です。Rhino Mocks WhenCalled - 代理人 'System.Action'は1つの引数をとりません

基本的にはあなたのような何かを行うことができるはず:

mock.Expect(x => x. SingleOrDefault(null)) 
    .IgnoreArguments() 
    .WhenCalled(invocation => ((Action)invocation.Arguments[0]).Invoke()); 

しかし、これは私のためにコンパイルされません - 私はエラーが委任「System.Actionが」1つの引数を取らないと言ってます。

私はRhino MocksのV 4.0を使用しています - このメソッドは変更されていますか?私は WhenCalledを使用して、SingleOrDefault(この場合はラムダ式)に渡された引数を取得します。

答えて

1

はすべて、このブログの記事で答え:

Rhino Mocks 4.0.0

を以前は、単一のパラメータ、メソッド呼び出しをカプセル化するデータ構造として、取ったアクションの実行を許可WhenCalled。アクションが呼び出されているので、期待値の戻り値を変更することはできません。 現在のバージョンでは、WhenCalledが単純にアクションを実行するようにわずかに変更されました

元の「WhenCalled」と同様の機能を提供するために、新しいメソッド「Intercept」が追加されました。使用インターセプト代わりにWhenCalled

:DR、単一のパラメータ、メソッド呼び出し

TLをカプセル化データ構造として

関連する問題