3

在使用 fit 框架检查结果时,是否有任何处理浮点值的良好/最佳实践?

我们的应用程序做了很多计算。在大多数情况下,检查值超过 6 或 8 位的精度没有任何意义。所以我想指定比较预期值和实际值时使用的精度。

我的蛮力解决方案是设置一个精度值,然后比较包含测试用例的 ColumnFixture 中的值。

这将导致类似:

!|info.fitnesse.fixturegallery.ColumnFixtureTest|
|firstSummand|secondSummand|precision|expectedResult|calculateSumAndCheck()|
|2.1|3.3|0.0001|5.3|true|

这种方法的主要缺点是我不能使用 fit 的比较功能,而是编写自己的比较功能。

4

1 回答 1

2

您可以对浮点类型使用一致的字符串格式并比较字符串到字符串。无论如何,Fit 实际上是对您的值执行 ToString() 并与 wiki 中的文本进行比较,因此如果您提供自己的字符串格式,则无需修改 Fit 中的内置比较。

您没有指定语言,但在 C# 中,例如,您可以使用静态辅助方法或浮点类型(float、double 等)的扩展方法,称为“ToStringForComparison()”。您的所有测试工具都需要在属性访问器中使用它来获取您想要在测试中比较的值。

编辑:

如果要控制精度,可以通过将精度值传递到格式化函数中来实现,同时为精度不重要的值保持默认值。

于 2009-11-07T02:28:18.180 回答