所以我对这个测试业务有点新,并使用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()]
并输入一些非零的整数,我想?
答案 0 :(得分:0)
Moq It.Is()
将在Mock<T>
中使用。它用于在设置或验证模拟调用时匹配参数。我强烈建议你阅读Moq quickstart / documentation。
此外,快速搜索C# unit testing with mock
不会受到伤害。