Search code examples
regexgoogletestgooglemock

Google Test - Test that a string does not contain a string


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?


Solution

  • 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.