2010-11-01 132 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