Google Test - 测试字符串不包含字符串

Dus*_*lmi 6 regex googletest googlemock

使用Google Test,我需要一种方法来验证我的测试类返回的字符串是否包含特定字符串.我现在可以通过使用EXPECT_THAT和MatchesRegex来测试字符串是否包含另一个字符串; 但是,我不知道如何为不包含单词构建有效的POSIX扩展正则表达式,我不知道如何否定MatchesRegex调用.

我尝试在SO上找到一个正则表达式:

EXPECT_THAT(returnedString, MatchesRegex("^(?!.*badword).*$"));
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误:

Regular expression "^(?!.*badword).*$" is not a valid POSIX Extended regular expression.
Run Code Online (Sandbox Code Playgroud)

有关如何做到这一点的任何其他建议?

Ant*_*rez 10

您可以组合匹配器HasSubstr,Not因此您的代码将如下所示:

EXPECT_THAT(returnedString, Not(HasSubstr("badword")));
Run Code Online (Sandbox Code Playgroud)

查看Google Mock 文档以获取完整参考资料.

  • 看来我们还需要`using :: testing :: HasSubstr;`来实现这一点.谢谢 (5认同)