我在.NET核心应用程序中实现了一个服务,我调用它来验证我的模型。不幸的是,如果服务(不是我的)无效,它会抛出一个异常,如果它是有效的(因为它是一个void方法),它只会以200ok响应。
所以基本上我是这样做的:
try {
await _service.ValidateAsync(model);
return true;
} catch(Exception e) {
return false;
}
我试着嘲笑里面的方法
ValidateAsync
,将请求发送到我实现的服务。
验证同步
只将控制器的输入从前端的某个对象转换为
Validate
方法理解。
然而,我真的看不出我应该如何测试这个。这是我试过的,但对我来说没有任何意义。
[TestMethod]
public void InvalidTest() {
var model = new Model(); // obviously filled out with what my method accepts
_theService.Validate(model)
.When(x => { }) //when anything
.Do(throw new Exception("didn't work")); //throw an exception
//Assert should go here.. but what should it validate?
}
所以基本上:
When this is called -> throw an exception
我怎么能用NSubstitute来嘲笑呢?