在我的测试代码中,我有很多地方都有下面的代码:
//
// Make a function call while expecting an exception should be thrown
//
bool exceptionThrown = false;
try
{
expectNotEqual(someData, anotherData, methodName);
}
catch(std::logic_error&)
{
exceptionThrown = true;
}
if(!exceptionThrown)
throw std::logic_error(methodName+"exception not thrown");
如果我能封装所有内容并做出以下操作,那将更易读、简洁:
exceptionShouldBeThrown(expectNotEqual(someData, anotherData, methodName));
我不想使用宏...有人知道我如何用C++实现上述一行代码吗?
expectNotEqual
重写为返回一个值,而不是抛出异常? - Dmitry Brant