我有一个符合规范的信号处理库。但是,我已经确定了一些重构的好地方。一段时间以来,我一直打算将单元测试纳入我的工作流程,这看起来是一个尝试非平凡代码的好机会。这样我就可以测试重构后的输出是否几乎相同。
我正在尝试将catch作为测试框架,但是,这个细节可能无关紧要,因为(据我所知)所有测试框架都取决于操作员的结果,即
REQUIRE(i_x == 2)
但是,对于浮点数据,需要某种形式的错误边界检查。.
const float target = 2.000f;
const float tolerance = 0.000005f;
const float err = target*tolerance;
REQUIRE( (f_x > target-err) && (f_x < target+err) )
对于每个编写的测试,这很快就会变得很难看,所以我当然可以创建一个(模板化的)全局函数,它返回一个bool
给定的x
,target
和tolerance
作为参数。
这是其他人都这样做的方式吗?这是最佳实践还是我错过了一个技巧?