c – 如何将STL容器作为参数传递给BOOST_CHECK_EQUAL?

前端之家收集整理的这篇文章主要介绍了c – 如何将STL容器作为参数传递给BOOST_CHECK_EQUAL?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,假设我们要测试这个类:
struct TestMe {
  vector<int> getSomething();
}

测试功能由以下部分组成:

...
vector<int> Expected;
TestMe TM;
...
Result = TM.getSomething();
BOOST_CHECK_EQUAL(Result,Expected);
...

STL向量提供了一个自由运算符==,但它没有提供运算符<<,因此这段代码不能编译.
我怎样才能让它发挥作用?我可以定义自己的运算符<< ?它的实现是什么样的?对最通用的解决方案的额外信任:)

解决方法

我认为你应该使用BOOST_CHECK_EQUAL_COLLECTIONS,它测试每个元素并打印不匹配的位置:
BOOST_CHECK_EQUAL_COLLECTIONS(Result.begin(),Result.end(),Expected.begin(),Expected.end());

猜你在找的C&C++相关文章