我有一个服务,其方法需要两个Action
s,一为成功,一为失败。每个Action
采用包含附加信息的 Result 参数...
void AuthoriseUser(AuthDetails loginDetails,
Action<AuthResult> onSuccess,
Action<AuthResult> onFailure);
我正在为依赖于该服务的类编写单元测试,并且我想测试该类是否在onSuccess(...)
and onFailure(...)
回调。这些方法要么是私有方法,要么是匿名方法,那么如何设置模拟服务来调用任一操作?
您可以使用Callback
方法(另见起订量快速入门 https://code.google.com/p/moq/wiki/QuickStart回调部分)来配置一个回调,该回调使用模拟方法调用的原始参数进行调用(AuthoriseUser
)这样你就可以打电话给你的onSuccess
and onFailure
那里的回调:
var moq = new Mock<IMyService>();
moq.Setup(m => m.AuthoriseUser(It.IsAny<AuthDetails>(),
It.IsAny<Action<AuthResult>>(),
It.IsAny<Action<AuthResult>>()))
.Callback<AuthDetails, Action<AuthResult>, Action<AuthResult>>(
(loginDetails, onSuccess, onFailure) =>
{
onSuccess(new AuthResult()); // fire onSuccess
onFailure(new AuthResult()); // fire onFailure
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)