【问题标题】:How to negate the matcher in gtest assert or expect that?如何否定 gtest 断言或期望中的匹配器?
【发布时间】:2017-03-02 09:08:02
【问题描述】:

我想检查 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;
}

但我想知道是否可以简单地否定任何匹配器

【问题讨论】:

    标签: c++ unit-testing tdd googletest assertions


    【解决方案1】:

    我发现您可以合成一些匹配器并执行类似的操作

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2012-03-28
      • 1970-01-01
      • 2014-08-16
      • 2016-05-14
      相关资源
      最近更新 更多