2009-12-19 70 views
0

說我有一個方法A.Do(Arg arg),它分配arg(class Arg)的一些屬性,假設它設置arg.Prop1 =「done」。而且我測試無效方法B.Do(無效):如何在方法調用後驗證方法參數?

public class B 
{ 
    public void Do() 
    { 
    var arg = InitArg(); 
    A.Do(arg) 
    ... 
    } 
} 

和我嘲笑A級作爲新模擬< A>()的基本代碼=真。那麼如何驗證arg.Prop1 ==「完成」?

回答

1

用給出的例子,你不能。 arg對B.Do()方法是私有的,因此它對外界不可見,所以你不能驗證它的任何屬性。

+0

謝謝。雖然我不知道MoQ的「內部」是什麼,但它仍然讓我確認A.Do被調用了多少次。所以我想知道它是否可以讓我驗證這些論點 - 但我想不會......可惜 – David 2009-12-19 17:52:38

2

您應該對A類進行單元測試,驗證您的傳遞參數是否正確,而不是嘗試通過B.Do()測試此行爲。

0

無論如何,MoQ添加這樣的功能來驗證方法調用後的參數似乎是非常合理的。因爲具有MoQ驗證方法調用次數的功能在邏輯上具有參數驗證功能。