zr.*_*zr. 6 c++ boost unit-testing stl
例如,假设我们要测试这个类:
struct TestMe {
vector<int> getSomething();
}
Run Code Online (Sandbox Code Playgroud)
测试功能由以下部分组成:
...
vector<int> Expected;
TestMe TM;
...
Result = TM.getSomething();
BOOST_CHECK_EQUAL(Result, Expected);
...
Run Code Online (Sandbox Code Playgroud)
STL向量提供了一个自由运算符==,但是它没有提供运算符<<,所以这段代码不能编译.我怎样才能让它发挥作用?我可以定义自己的运算符<<?它的实现是什么样的?对最通用的解决方案的额外信任:)
我认为你应该使用BOOST_CHECK_EQUAL_COLLECTIONS,这测试每个元素,并打印不匹配的位置:
BOOST_CHECK_EQUAL_COLLECTIONS(Result.begin(), Result.end(), Expected.begin(), Expected.end());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |