使用NUnit进行浮点数测试准则
浮点数(float和double),由于某种原因计算机无法保证百分之百的精确表达它们,很容易出现一些偏差。因此在使用Assert.AreEquals断言进行测试时,必须要指定一个误差参数。
Assert.AreEqual(expected, actual, tolerance [, string message])
参数expected是期望得到的值;参数actual是被测试的代码执行后实际产生的值;参数tolerance是误差参数,该参数决定expected和actual接近到何种程度才算相等(或者说该参数决定expected和actual接近到何种程度就认为它们相等);参数message是expected和actual不一致时将会报告的消息。
对于商业程序而言,必须精确到小数点后4或5位。对于科学计算程序,需要更高的精度。
参见文章: