【发布时间】:2018-09-26 21:41:55
【问题描述】:
我有以下(简化的)代码:
public string methodName(ClassType object)
{
If(object.value == 1)
return "Yes";
else If(object.value == 2)
return "No";
else
return "whatever";
}
然后我在单元测试中调用这个方法,需要根据对象值来模拟返回类型:
_Service.Setup(x => x.methodName(new methodName { value = 1}).Returns("Yes");
_Service.Setup(x => x.methodName(new methodName { value = 2}).Returns("No");
我知道我写的是错误的 - 但我怎样才能做到这一点?
【问题讨论】:
-
我认为这里不需要使用模拟框架。你能解释一下你需要模拟什么,也许是为什么?
-
@nvoigt,我根据自己的经验进行推测,但我假设发布者正在测试一些不同的代码,这些代码依赖于一个名为
methodName()的方法的接口。第一个示例演示了来自该接口的生产实现的示例返回数据。他在嘲笑这种依赖,而不是在测试时使用真正的依赖。
标签: c# unit-testing moq