Moq不尊重OUT参数

时间:2013-03-15 19:02:48

标签: c# moq

我正在尝试使用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
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

moq实际上并没有改变输出值。在您发布的示例中,他们将out值初始化为他们想要的值(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!!!
 }
有点蹩脚......

相关问题