[英]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.