我的 Catch Testframework 中有以下简单的表达式。理想情况下,如果测试失败,测试应该发出警告。
不幸的是,Catch 无法编译以下代码片段:
#define CATCH_CONFIG_MAIN
#include "catch2.hpp"
TEST_CASE("Simple") {
int a = 4;
int b = 1;
CHECK(a == 5 || b == 2);
}
Visual Studio 2015 发出以下错误:
error C2676: Binary operator "||": "const Catch::BinaryExpr<LhsT,const int &>" does not define this operator or a conversion for this operator of to suitable type
我会期待类似以下的内容:
4==5 || 1==2 => false || false => false
这是否可能与 Catch 或我必须使用额外的括号:
#define CATCH_CONFIG_MAIN
#include "catch2.hpp"
TEST_CASE("Simple") {
int a = 4;
int b = 1;
CHECK((a == 5 || b == 2));
}