我是单元测试的新手,我正在使用 NSubstitute 进行模拟。我已经阅读了几篇关于单元测试的高层次目的的文章,其中很多基本原理都非常令人满意。但是,如果我的测试没有在具体类中测试任何逻辑,我似乎无法理解它的价值。
使用 NSubstitute 文档 ( http://nsubstitute.github.io/help/getting-started/ ) 中的示例,让我们假设一个基本的计算器界面:
public interface ICalculator
{
int Add(int a, int b);
string Mode { get; set; }
event EventHandler PoweringUp;
}
我们将使用 NSubstitute 替换实例,指定返回值,并使用 Assert 进行测试:
calculator = Substitute.For<ICalculator>();
calculator.Add(1, 2).Returns(3);
Assert.That(calculator.Add(1, 2), Is.EqualTo(3));
因为我们已经指定当 1 和 2 传递给 Add 方法时总是返回 3,这如何帮助我们测试存在于实现 ICalculator 接口的具体类中的潜在错误逻辑?如果没有,为什么这个测试值得呢?
谢谢!