2010-11-01 127 views
1

这里我的测试代码嘲笑一个静态调用:犀牛模拟,从非嘲笑对象

[Test] 
    public void Test_Delete_ShouldCancelLayoutView() 
    { 
     Expect.Call(TreeMasterService.Delete(1, null)).Return(null).IgnoreArguments(); 
     Mocks.ReplayAll(); 
     TestController.Delete(1); 
    } 

这里是测试对象:

public void Delete(int id) 
    { 
     TreeMasterService.Delete(id, CurrentUser); 
     CancelLayout(); 
     CancelView(); 
    } 

有没有什么办法,以确保CancelLayout()并使用Rhino Mocks调用CancelView()?

回答

2

编号
像犀牛这样的免费模拟框架可以有效地为您的待测类创建透明代理。因此,您可以通过设计仅对接口方法和虚拟方法进行操作。 对于上面的东西,您需要MS Moles框架或像Typemock这样的商业工具。

HTH
Thomas