2017-03-02 2 views
2

Je voudrais vérifier si un vecteur n'est pas vide dans gtest mais je voudrais comprendre plus en général comment vérifier la négation d'un matcher.Comment annuler le matcher dans gtest affirmer ou attendre cela?

Je ckeck habituellement la taille est supérieure à zéro

EXPECT_THAT(vector.size(), Gt(0)); 

et je sais que je pourrais écrire mon propre matcher

MATCHER(IsNotEmpty, !negation ? "isn't empty" : "is empty") { 
if (!arg.empty()) { 
    return true; 
} 
*result_listener << "whose size is " << arg.size(); 
return false; 
} 

mais je me demande s'il est tout simplement possible de nier toute matcher

Répondre

3

Je découvre que vous pouvez composer certains matchers et faire quelque chose comme

EXPECT_THAT(vector, Not(IsEmpty())); 

également un autre composite intéressant Matchers

AllOf(m1, m2, ..., mn) 
AnyOf(m1, m2, ..., mn)