Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 558
Dustin Wilhelmi Avatar asked Jan 14 '16 22:01

Dustin Wilhelmi


Video Answer


1 Answers

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.

like image 102
Antonio Pérez Avatar answered Sep 22 '22 06:09

Antonio Pérez