我有一个静态方法
Public Shared Function UpdateGroup(ByVal details As GroupDetails)
As ControllerResult
Return _methodObject.UpdateGroup(details)
End Function
被重构为能够在
的帮助下进行模拟Private Shared _methodObject As ISecurityController =
New SecurityControllerMethodObject()
Public Shared Sub OverrideInstance(ByVal controller As ISecurityController)
_methodObject = controller
End Sub
然后在我的测试中我有
var moqSecurityController = new Mock<ISecurityController>();
moqSecurityController
.Setup(x => x.UpdateGroup(groupDetails))
.Returns(controllerResult);
SecurityController.OverrideInstance(moqSecurityController.Object);
如果我在最后一行放置一个断点,我可以看到groupDetails有它应该具有的内容以及controllerResult,所以我希望在调用Function UpdateGroup时,将返回controllerResult,这只是一个简单的类消息&amp;成功属性。
然而,我得到的是Null / Nothing。
我错过了什么?
注意:您可能已经注意到,生产代码是在VB.NET中,我的测试是在C#中。
答案 0 :(得分:5)
是因为你的groupDetails不匹配吗?
试
var moqSecurityController = new Mock<ISecurityController>();
moqSecurityController.Setup(
x => x.UpdateGroup(It.IsAny<GroupDetails>())
).Returns(controllerResult);