Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Catch2要求异常等于某物_C++_Catch2 - Fatal编程技术网

C++ Catch2要求异常等于某物

C++ Catch2要求异常等于某物,c++,catch2,C++,Catch2,我正在寻找这段代码的替代品,因为它会在整个测试段中重复,我会检查它是否返回正确的错误消息(来自enum) 试试看{ _抛出的函数_(); }捕获(MyErrorEnum错误){ REQUIRE(error==MyErrorEnum::TheExactError); } 我认为应该有一个内置的Catch2来解决这个问题。使用类而不是枚举是一个很好的解决方案。 然后用类型而不是值使用REQUIRE\u THROW\u AS。在我看来,测试错误消息的相等性是糟糕的测试设计(尽管使用enum并不可怕)

我正在寻找这段代码的替代品,因为它会在整个测试段中重复,我会检查它是否返回正确的错误消息(来自enum)

试试看{
_抛出的函数_();
}捕获(MyErrorEnum错误){
REQUIRE(error==MyErrorEnum::TheExactError);
}

我认为应该有一个内置的Catch2来解决这个问题。

使用类而不是枚举是一个很好的解决方案。
然后用类型而不是值使用
REQUIRE\u THROW\u AS

在我看来,测试错误消息的相等性是糟糕的测试设计(尽管使用enum并不可怕)。最好能够根据抛出对象的类型来区分异常的原因。@eerorika所以我应该使用包含一些信息的枚举值来创建类型?我认为我的项目相当小,所以我可以只做枚举。你不必。这只是一个建议。好的,这样做,似乎更合理(如果需要,我可以包括行号等等)