如何在gtest的assert或expect中否定匹配器?

7
我想要检查在gtest中一个向量是否为空,但我也想更加了解如何检查匹配器的否定。

通常我会检查大小是否大于零。

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;
}

但我想知道是否可能仅仅否定任何匹配器。

1个回答

13

我发现你可以组合一些匹配器并执行一些操作,例如:

EXPECT_THAT( vector, Not( IsEmpty() ) );

还有其他有趣的组合匹配器

AllOf(m1, m2, ..., mn)
AnyOf(m1, m2, ..., mn)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接