koo*_*hka 2 c# vb.net unit-testing moq
我有一个静态方法
Public Shared Function UpdateGroup(ByVal details As GroupDetails)
As ControllerResult
Return _methodObject.UpdateGroup(details)
End Function
Run Code Online (Sandbox Code Playgroud)
被重构为能够在帮助下进行模拟
Private Shared _methodObject As ISecurityController =
New SecurityControllerMethodObject()
Public Shared Sub OverrideInstance(ByVal controller As ISecurityController)
_methodObject = controller
End Sub
Run Code Online (Sandbox Code Playgroud)
然后在我的测试中我有
var moqSecurityController = new Mock<ISecurityController>();
moqSecurityController
.Setup(x => x.UpdateGroup(groupDetails))
.Returns(controllerResult);
SecurityController.OverrideInstance(moqSecurityController.Object);
Run Code Online (Sandbox Code Playgroud)
如果我在最后一行放置一个断点,我可以看到groupDetails有它应该具有的内容以及controllerResult,所以我希望在调用Function UpdateGroup时,将返回controllerResult,这只是一个带有Message&的简单类成功属性.
但是,我得到的是Null/Nothing.
我错过了什么?
注意:您可能已经注意到,生产代码是在VB.NET中,我的测试是在C#中.
是因为你的groupDetails不匹配?
尝试
var moqSecurityController = new Mock<ISecurityController>();
moqSecurityController.Setup(
x => x.UpdateGroup(It.IsAny<GroupDetails>())
).Returns(controllerResult);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |