簡體   English   中英

我是否應該僅使用最小起訂量來測試是否調用了方法?

[英]Should I be using a moq just to test if a method is called?

我有一些看起來像這樣的測試代碼:

[Test]
public void RunTableInfoCommandShouldCallTableINfoWithName()
{
   string expectedcommand = "TableInfo(TestTable,1)";

   Table.RunTableInfoCommand(mockmapinfo.Object,
                            "TestTable",
                             TableInfoEnum.TAB_INFO_NAME); //This is just an enum for 1.

   mockmapinfo.Verify(m => m.Evaluate(expectedcommand));
 }

我是否應該使用模擬對象創建測試,只是為了看看是否在RunTableInfoCommand中調用了模擬使用的預期命令

還是我應該做一個檢查RunTableInfoCommand輸出並在其中使用模擬的測試,因為這將測試是否也進行了調用。

RunTableInfoCommand返回一個字符串,您可以看到我在這里沒有使用它,因為我只想查看TableInfo命令是否被調用。

我不認為您應該進行測試以查看您正在調用的函數是否被調用。 您應該假設會。

您可能最擅長的是測試行為。 例如,設置一個測試,該測試的功能是調用RunTableInfoCommand作為其預期行為的一部分。

然后檢查結果是否符合預期。

例如

[Test]
public void GetTableName()
{   
    string expectedName = "TableInfo(TestTable,1)"; 
    Assert.AreEqual(testTable.GetTableName(mockmapinfo.Object) = expectedName); 
}

在此示例中,GetTableName實際上是調用RunTableInfoCommand的函數。 因此,您正在測試對象的接口或行為。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM