Using Google Test, I need a way to verify that a string that was returned by my class under test does not contain a particular string. I can currently test that a string does contain another string by using EXPECT_THAT and MatchesRegex; however, I don't know how to build a valid POSIX Extended regular expression for not containing a word, and I don't know how to negate a MatchesRegex call.
I tried doing a regex I found here on SO:
EXPECT_THAT(returnedString, MatchesRegex("^(?!.*badword).*$"));
but that gives me an error:
Regular expression "^(?!.*badword).*$" is not a valid POSIX Extended regular expression.
Any other suggestions on how I could do this?
You can combine matchers HasSubstr
and Not
so your code would look like:
EXPECT_THAT(returnedString, Not(HasSubstr("badword")));
Check Google Mock documentation for matchers for full reference.