7

を持っていますInterface

public interface IRequester
{
    void Check(Check check);
}

Moq明らかに簡単な方法でこれをモックしたいと思います。Check私が抱えている問題は、モックされた呼び出しの後に渡されたものを(参照であるため)変更したいということです。ご覧のとおりCheck、単純な POCO です。

public class Check
{
    public string Url { get; set; }
    public int Status { get; set; }
}

理想的には、渡されたStatusプロパティの値を変更したいと考えています。Check

これは可能ですか?

4

2 に答える 2

18

メソッドを使用しCallbackます。次のようなものになると思います:

yourMock.Setup(x => x.Check(It.IsAny<Check>()))
    .Callback((Check c) => { c.Status = 1234567; });

割り当てが 1 つだけ必要な場合は、中かっこ{ }と最初のセミコロンを省略できます。;

于 2013-02-02T14:56:48.153 に答える
0

ref キーワードを使用して、必要なものを取得できると考えてください。

メソッド パラメーターの ref メソッド パラメーター キーワードにより、メソッドは、メソッドに渡された同じ変数を参照します。メソッドのパラメーターに加えられた変更は、制御が呼び出し元のメソッドに戻るときに、その変数に反映されます。

http://msdn.microsoft.com/en-us/library/14akc2c7(v=vs.71).aspx

于 2013-02-02T14:39:38.603 に答える