从昨天开始,我已经开始学习所有关于单元测试的知识,今天的内容特别是关于Mocks和NSub
。 我的问题是我没有得到它背后的哲学和思维方式。因此,例如读我的书,来到了这一点:我们在为单元测试创建模拟时对自己说谎
[Test]
public void Returns_ByDefault_WorksForHardCodedArgument()
{
IFileNameRules fakeRules = Substitute.For<IFileNameRules>();
fakeRules.IsValidLogFileName(Arg.Any<String>())
.Returns(true);
Assert.IsTrue(fakeRules.IsValidLogFileName("anything.txt"));
}
行,所以我们首先做一个假对象来表示,我们在这一个实际的方法,做一些实际的工作实际类的接口。然后我们调用该方法,但我们也告诉它返回true。 然后我们断言它是否返回true?那么我们刚刚告诉它一行之前,返回true!现在我们测试它返回真实!他们我们说好通过? 我不明白!对我来说是这样的:老师告诉孩子为了通过考试答案是如果问这个问题,然后去问问题和孩子说是和考试通过?
您不应该模拟或存根您想要测试的类。只有它的依赖。 –
@YacoubMassad这是在Roy的单元测试书中,所以他只是用这个愚蠢的手段教我们语法? – Bohn
这是书中的一个例子吗?原样? –