我正在为处理数据转换的规范编写参考实现。从CPPunit测试用例中为规范生成参考测试文件
我有很多的测试用例检查数据越来越向前和向后适当改造,是这样的:
void test(){
int x[maxTest], y[maxTest], z[maxTest];
fillRandomly(x, testSize);
MyTransform trans = MyTransform(testsize);
trans.apply(x, testSize, y);
trans.remove(y, testSize, z);
for(int i = 0; i < testSize; i++)
CPPUNIT_ASSERT(abs(x[i] - z[i]) < 2);
}
数据类型测试用例和变换之间的差异很大。
我想生成的是包含输入/输出和中间阶段的文件,以便进一步的实现可以验证其结果。
有几个明显的方法可以使这项工作(例如,命名输出文件并对其中的所有内容进行命名),但其中大多数意味着要回到每个测试用例和一大堆复制粘贴。
来自Java,自省想到一个包装来解决我的一些问题(自动命名测试输出文件...),但不是所有的,我建议远离它在C++(意见欢迎)。
泛型应用/删除方法似乎也是一个很好的候选人,但不会那么容易,因为没有抽象变换类型和变换之间很少符合(可能仍然是一个不错的选择,因为没有很多类型的变换)。
所以我想知道你们中的任何一个人是否必须做类似的事情以及如何解决它。我不介意修改所有的测试用例,如果这意味着以后我可以干净一些。
任何输入将不胜感激。
你想在这些文件中再次存储什么? – 2013-05-03 11:43:10
[Boost.Serialization](http://www.boost.org/libs/serialization/doc/index.html)有用吗? – 2013-05-03 11:50:01
在文件中,我想存储输入数据和每个变换的输出数据,在这种情况下,x和z。这种方式在重新实现时很容易确保一切都是正确的。序列化并不真正适合我的需求。 – 2013-05-03 12:39:58