0

我正在尝试使用 Moq 来模拟具有两个 OUT 参数的方法。这应该根据此处的 Moq 示例工作: https ://code.google.com/p/moq/wiki/QuickStart

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 实际上并没有改变输出值。在您发布的示例中,他们将输出值初始化为他们想要的值(var outString = "ack";)。在您的代码中,您从 0 开始并期望函数返回正确的值。

我没有看到任何文件表明您可以最小起订量。相反,您的代码应该是;

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 回答