Google 测试 - 测试字符串不包含字符串
Google Test - Test that a string does not contain a string
使用 Google 测试,我需要一种方法来验证被测试的 class 返回的字符串不包含特定字符串。我目前可以使用 EXPECT_THAT 和 MatchesRegex 测试一个字符串是否包含另一个字符串;但是,我不知道如何构建一个有效的 POSIX 不包含单词的扩展正则表达式,而且我不知道如何否定 MatchesRegex 调用。
我试着做一个我在 SO 上找到的正则表达式:
EXPECT_THAT(returnedString, MatchesRegex("^(?!.*badword).*$"));
但这给了我一个错误:
Regular expression "^(?!.*badword).*$" is not a valid POSIX Extended regular expression.
关于如何执行此操作还有其他建议吗?
您可以组合匹配器 HasSubstr
和 Not
,这样您的代码将如下所示:
EXPECT_THAT(returnedString, Not(HasSubstr("badword")));
检查 Google 模拟 documentation for matchers 以获得完整参考。
使用 Google 测试,我需要一种方法来验证被测试的 class 返回的字符串不包含特定字符串。我目前可以使用 EXPECT_THAT 和 MatchesRegex 测试一个字符串是否包含另一个字符串;但是,我不知道如何构建一个有效的 POSIX 不包含单词的扩展正则表达式,而且我不知道如何否定 MatchesRegex 调用。
我试着做一个我在 SO 上找到的正则表达式:
EXPECT_THAT(returnedString, MatchesRegex("^(?!.*badword).*$"));
但这给了我一个错误:
Regular expression "^(?!.*badword).*$" is not a valid POSIX Extended regular expression.
关于如何执行此操作还有其他建议吗?
您可以组合匹配器 HasSubstr
和 Not
,这样您的代码将如下所示:
EXPECT_THAT(returnedString, Not(HasSubstr("badword")));
检查 Google 模拟 documentation for matchers 以获得完整参考。