[英]Should I Use It.Is<T>() As A Testing Parameter?
因此,我對這項測試業務有點陌生,並使用了Moq庫。 我想知道It.Is()方法的使用。
假設我有一個課程要測試:
public class ZeroChecker
{
public bool IsNotZero(int myInt)
{
return myInt != 0;
}
}
所以我做了一個相應的類來測試:
public class ZeroCheckerTest
{
[Fact]
public void IsNotZero_ReturnsTrue_WhenInputIsNotZero()
{
//Arrange
var myInt = It.Is<int>(i => i != 0);
ZeroChecker target = new ZeroChecker();
//Act
bool actual = target.IsNotZero(myInt);
//Assert
Assert.True(actual);
}
}
但是,我的測試失敗了! 當我查看調試器時,我注意到myInt設置為零!
所以我正在考慮:
1)我很笨,這不是應該使用It.Is()的方式
2)Moq中有一個錯誤
在這兩種情況下,我將如何測試上述情況? 切換到[InlineData()]
並拋出少數非零整數,我想呢?
Moq It.Is()
將在Mock<T>
。 當您設置或驗證模擬呼叫時,它用於匹配參數。 我強烈建議您閱讀Moq快速入門/文檔 。
此外, C# unit testing with mock
快速搜索C# unit testing with mock
也不會受到傷害。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.