2011-12-02 111 views
2

我有一个静态的方法嘲笑功能没有返回预期值

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一样的功能,所以我认为d期望当函数UpdateGroup被调用时,controllerResult将被返回,这只是一个简单的类,带有消息&成功属性。

但是,我得到的是空/无。

我错过了什么?

注意:您可能已经注意到,生产代码是在VB.NET中,我的测试使用C#。

回答

5

是否因为您的群组详细信息不匹配?

尝试

var moqSecurityController = new Mock<ISecurityController>(); 
moqSecurityController.Setup(
    x => x.UpdateGroup(It.IsAny<GroupDetails>()) 
).Returns(controllerResult); 
+0

伟大的东西!!!! – kooshka