0

Moq を使用して、2 つの OUT パラメータを持つメソッドをモックしようとしています。これは、 https ://code.google.com/p/moq/wiki/QuickStart の Moq サンプルに従って動作するはずです 。

var moqDB = new Mock<IMyDB>();

int Value1 = 500000;
decimal Value2 = 0.2M;

moqDB.Setup(db => db.DoSomething(out Value1, out Value2)).Returns(true);

しかし、私がテストしているメソッド内で値を設定しません:

public virtual void TestMethod(IMyDB db)
{
    int Value1 = 0;
    decimal Value2 = 0.0M;

    db.DoSomething(out Value1, out Value2);

    // Check Values
}

私は何を間違っていますか?

4

1 に答える 1

1

moq は実際には out 値を変更しません。投稿した例では、出力値を必要な値に初期化します(var outString = "ack";)。コードでは、それらを 0 から開始し、関数が適切な値を返すことを期待しています。

値を moq アウトできることを示すドキュメントはありません。代わりに、コードは次のようになります。

public virtual void TestMethod(IMyDB db)
{
    int Value1 = 500000;
    decimal Value2 = 0.2M;

    db.DoSomething(out Value1, out Value2);

    // look the out values are 500000 and .2M, OMG!!!
 }

一種の不自由な...

于 2013-03-15T19:11:45.133 に答える