c++ - 如何否定 gtest assert 或 expect that 中的匹配器?

标签 c++ unit-testing tdd googletest assertions

我想检查 gtest 中的 vector 是否不为空,但我想更全面地了解如何检查匹配器的否定。

我通常检查尺寸大于零

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)

关于c++ - 如何否定 gtest assert 或 expect that 中的匹配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42551023/

相关文章:

c++ - 在多线程代码中使用 shared_ptr

c++ - 为什么要创建自己的自定义异常类?

.net - 在 .NET 中对私有(private)方法进行单元测试的最佳实践是什么?

c++ - 如何使用 GTest 测试严重依赖 MFC 的方法

unit-testing - 您如何使用 TDD 设计复杂系统?

android - Android Studio 测试中的颜色含义

c++ - ("hello"+ 1) VS ( *"hello") + 1 VS (* ("hello"+ 1)) 之间的差异

c++ - 访问多维 std::array 元素时出现问题

java - 为不带参数的 boolean 方法编写 Junit 测试

unit-testing - 单元测试文件解析例程?