11

我有两种不同的方法来计算一个值。两种方法都运行后,我得到以下信息:

decimal a = 145.2344;
decimal b = 145.2345;

我有一个单元测试:

  Assert.AreEqual(a,b);

我希望能够解释 +/- .0001 的差异。如何添加此规则?

4

2 回答 2

16

NUnit 的约束模型中,你可以这样做:

Assert.That(Math.Abs(a-b), Is.LessThan(0.0001M));

更好的是,让它成为一个函数:

void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
     Assert.That(Math.Abs(a-b), Is.LessThan(diff));
}

编辑:在 MS 单元测试框架中,执行以下操作:

void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
     Assert.IsTrue(Math.Abs(a-b) < diff);
}
于 2012-12-28T19:09:42.550 回答
4

简单的:

if (Math.Abs(a-b) < 0.0001m)
    // equal
于 2012-12-28T19:09:15.523 回答