RJP*_*RJP 10 c# unit-testing decimal
我有两种不同的方法来计算一个值.两种方法运行后,我得到以下内容:
decimal a = 145.2344;
decimal b = 145.2345;
Run Code Online (Sandbox Code Playgroud)
我有一个单元测试:
Assert.AreEqual(a,b);
Run Code Online (Sandbox Code Playgroud)
我希望能够解释+/- .0001的差异.如何添加此规则?
das*_*ght 15
在NUnit的约束模型中,您可以这样做:
Assert.That(Math.Abs(a-b), Is.LessThan(0.0001M));
Run Code Online (Sandbox Code Playgroud)
更好的是,使它成为一个功能:
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.That(Math.Abs(a-b), Is.LessThan(diff));
}
Run Code Online (Sandbox Code Playgroud)
编辑:在MS单元测试框架中,执行以下操作:
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.IsTrue(Math.Abs(a-b) < diff);
}
Run Code Online (Sandbox Code Playgroud)