如何否定 gtest assert 或 expect that 中的匹配器?
How to negate the matcher in gtest assert or expect that?
我想检查 gtest 中的向量是否不为空,但我想更全面地了解如何检查匹配器的否定。
我通常ckeck size大于零
EXPECT_THAT( vector.size(), Gt( 0 ) );
而且我知道我可以编写自己的匹配器
MATCHER( IsNotEmpty, !negation ? "isn't empty" : "is empty" ) {
if ( !arg.empty() ) {
return true;
}
*result_listener << "whose size is " << arg.size();
return false;
}
但我想知道是否可以简单地否定任何匹配器
我发现您可以组合一些匹配器并执行类似
的操作
EXPECT_THAT( vector, Not( IsEmpty() ) );
还有其他有趣的复合匹配器
AllOf(m1, m2, ..., mn)
AnyOf(m1, m2, ..., mn)
我想检查 gtest 中的向量是否不为空,但我想更全面地了解如何检查匹配器的否定。
我通常ckeck size大于零
EXPECT_THAT( vector.size(), Gt( 0 ) );
而且我知道我可以编写自己的匹配器
MATCHER( IsNotEmpty, !negation ? "isn't empty" : "is empty" ) {
if ( !arg.empty() ) {
return true;
}
*result_listener << "whose size is " << arg.size();
return false;
}
但我想知道是否可以简单地否定任何匹配器
我发现您可以组合一些匹配器并执行类似
的操作EXPECT_THAT( vector, Not( IsEmpty() ) );
还有其他有趣的复合匹配器
AllOf(m1, m2, ..., mn)
AnyOf(m1, m2, ..., mn)