1. ホーム
  2. c++

[解決済み] googleテストでの配列の比較?

2022-12-17 10:40:37

質問

私はgoogleテストで2つの配列を比較することを探しています。UnitTest++では、これはCHECK_ARRAY_EQUALを通して行われます。googleテストでどのようにそれを行うのですか?

どのように解決するのですか?

私は本当に見ることをお勧めします Google C++ モッキングフレームワーク . モックしなくても、かなり複雑なアサーションが簡単に書けるようになります。

例えば

//checks that vector v is {5, 10, 15}
ASSERT_THAT(v, ElementsAre(5, 10, 15));

//checks that map m only have elements 1 => 10, 2 => 20
ASSERT_THAT(m, ElementsAre(Pair(1, 10), Pair(2, 20)));

//checks that in vector v all the elements are greater than 10 and less than 20
ASSERT_THAT(v, Each(AllOf(Gt(10), Lt(20))));

//checks that vector v consist of 
//   5, number greater than 10, anything.
ASSERT_THAT(v, ElementsAre(5, Gt(10), _));

には、たくさんの マッチャー があり、それらを組み合わせることで、ほとんど何でも実現できます。

私が言ったのは ElementsAre が必要なのは iteratorssize() メソッドで動作させることはできますか?つまり、STLのどのコンテナでも動作するだけでなく、カスタムコンテナでも動作するのです。

Google MockはGoogle Testと同じくらいポータブルだと言っていますが、正直なところ、これを使わない理由は見当たりません。これは純粋に素晴らしいことです。