我有这两个值:
Expected Value (fResult)= 103393.431493782901937514
Actual Value (output) = 103393.431493782901937514
当我断言该值时,我的预期结果被视为103393.431493783m
因为我的Assert失败了。任何人都可以在这方面提供帮助。
Assert.That(output, Is.EqualTo(fResult));
更多信息:实际值和预期值均为十进制数据类型
[TestCase("value1", "value2", 5, 103393.431493782901937514)]
public void converFormulaforPressure(String Fromunit, String toUnit, decimal Avalue, decimal fResult) {
var output = ut1.Convert(ut1.GetUnit("Pressure", Fromunit), ut1.GetUnit("Pressure", toUnit), Avalue).Val;
Assert.That(output, Is.EqualTo(fResult));
}
ut1.Convert是一种转换价值并给出实际结果的方法。
答案 0 :(得分:3)
您需要提供容差级别和,而不能将decimal
作为TestCase
参数传递。您提供的代码将最后一个值作为double
传递,因此在运行断言时进行舍入。您可以使用TestCaseSource
来解决此问题。
以下测试通过:
private static readonly object[] TestCases = {
new object[] {"value1", "value2", 5m, 103393.431493782901937514m}
};
[Test, TestCaseSource("TestCases")]
public void TestExample(string fromUnit, string toUnit, decimal value, decimal fResult) {
//Replace the line below with your convert method using values from testCase
var output = 103393.431493782901937514m;
Assert.That(output, Is.EqualTo(fResult).Within(0.00000000000001));
}