C# 使用NSabstitute返回模拟的方法';0';而不是HttpStatusCode.OK
为什么在模拟我的服务并将返回值指定为HttpStatusCode后,我会得到int值'0'。OKC# 使用NSabstitute返回模拟的方法';0';而不是HttpStatusCode.OK,c#,.net,unit-testing,xunit,nsubstitute,C#,.net,Unit Testing,Xunit,Nsubstitute,为什么在模拟我的服务并将返回值指定为HttpStatusCode后,我会得到int值'0'。OK 首先,我嘲笑我的服务: 最终返回值为statusCode=0 我所期望的是:好的正确的答案是 Returns()仅适用于给定的参数组合,因此其他 对此方法的调用将返回默认值 给定的参数将与配置的参数进行比较。在您的情况下,xmlDocument的配置实例与传递给测试类中的方法的实例不同 您有两个选择: 忽略给定的参数-但丢失一些测试覆盖率 var result = service.DoS
xmlDocument
的配置实例与传递给测试类中的方法的实例不同
您有两个选择:忽略给定的参数-但丢失一些测试覆盖率
var result =
service.DoSomething(null).ReturnForAnyArgs(HttpStatusCode.OK);
在返回预期值之前验证给定参数
var result = service
.DoSomething(Arg.Is<XmlDocument>(doc => doc != null))
.Returns(HttpStatusCode.OK)
var结果=服务
.DoSomething(参数为(doc=>doc!=null))
.Returns(HttpStatusCode.OK)
正确答案是
Returns()仅适用于给定的参数组合,因此其他
对此方法的调用将返回默认值
给定的参数将与配置的参数进行比较。在您的情况下,xmlDocument
的配置实例与传递给测试类中的方法的实例不同
您有两个选择:忽略给定的参数-但丢失一些测试覆盖率
var result =
service.DoSomething(null).ReturnForAnyArgs(HttpStatusCode.OK);
在返回预期值之前验证给定参数
var result = service
.DoSomething(Arg.Is<XmlDocument>(doc => doc != null))
.Returns(HttpStatusCode.OK)
var结果=服务
.DoSomething(参数为(doc=>doc!=null))
.Returns(HttpStatusCode.OK)
后一种方法是正确的,应该是公认的答案后一种方法是正确的,应该是公认的答案