我有一个枚举类,我想在我的单元测试使用方法:与加速测试使用枚举类
enum class MyEnumClass
{
MyEntryA,
MyEntryB
};
我想如下使用它:
MyEnumClass myEnumValue = MyEnumClass::MyEntryA;
BOOST_CHECK_EQUAL(myEnumValue, MyEnumClass::MyEntryB);
但我得到这个错误,因为显然升压试验正试图输出值:
include/boost/test/test_tools.hpp:326:14: error: cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
ostr << t; // by default print the value
^
添加丑陋static_cast
“解决了”的问题:
BOOST_CHECK_EQUAL(static_cast<int>(myEnumValue), static_cast<int>(MyEnumClass::MyEntryB));
但我想避免为每个枚举类做这件事。我也想避免为每个枚举类定义<<
流操作符。
有没有更简单的方法来使用枚举类与升压测试?
或者其他单元测试框架有更好的方法来处理枚举类?
可能重复的[我怎样才能输出一个枚举类的值在C + + 11](http://stackoverflow.com/questions/11421432/how-can-i-output-the-value-of-一个-枚举类型-C11) –