簡體   English   中英

我應該使用它嗎 <T> ()作為測試參數?

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

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