C# 最小起订量与输出参数无关
我试图用Moq来模拟一个有两个OUT参数的方法。这应根据此处的最小起重量样品进行:C# 最小起订量与输出参数无关,c#,moq,C#,Moq,我试图用Moq来模拟一个有两个OUT参数的方法。这应根据此处的最小起重量样品进行: 我做错了什么 moq实际上不会改变out值。在您发布的示例中,他们将输出值初始化为所需的值(var outString=“ack”)。在代码中,从0开始,期望函数返回正确的值 我没有看到任何文件表明您可以计算出最小起订量值。相反,你的代码应该是 public virtual void TestMethod(IMyDB db) { int Value1 = 500000; decimal Value
我做错了什么 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!!!
}
有点蹩脚…我不知道这是问题所在,但在示例中,out变量被声明为
var
,而不是它们的类型。我想试试。还有,我要指出;我找不到任何关于out
params如何工作的信息,在示例中,他们将out param设置为它“返回”的值-它实际上做了什么吗?好主意。试过了,没什么区别。你想验证什么?从技术上讲,这两个out字段在传递到DoSomething
之前不需要初始化。您只是想确保调用了DoSomething
?或者out参数保存期望值?在方法逻辑中,它使用out值执行工作。因此,为了测试代码的其余部分,该方法需要返回与驱动代码路径相关的值:
public virtual void TestMethod(IMyDB db)
{
int Value1 = 0;
decimal Value2 = 0.0M;
db.DoSomething(out Value1, out Value2);
// Check Values
}
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!!!
}