58

ASSERT_* マクロはテスト ケースを終了させますが、EXPECT_* マクロは評価を続行します。どちらを使用するかを決定する基準は何かを知りたいです。

4

3 に答える 3

71

ASSERT条件が保持されなければならない場合に使用します - 保持されない場合、テストはそこで停止します。この条件が保持されないと、テストの残りの部分に意味的な意味がない場合に使用します。

EXPECT条件が満たされる必要がある場合に使用しますが、そうでない場合でも、テストを続行することで価値を得ることができます。(ただし、テストは最終的に失敗します。)

経験則は次のとおりです。残りのテストで何かを保持する必要がEXPECTない限り、デフォルトで使用します。その場合は、その特定の条件に使用する必要があります。ASSERT


これはプライマー内でエコーされます:

EXPECT_*テストで複数の失敗を報告できるため、通常は好まれます。ただし、ASSERT_*問題のアサーションが失敗したときに続行する意味がない場合は、使用する必要があります。

于 2010-04-02T06:24:28.563 に答える
23

するときに使用EXPECT_します。

  • テストで複数の失敗を報告したい

使用するASSERT_場合

  • アサーションが失敗したときに続行しても意味がありません

ASSERT_関数が失敗するとすぐに中止されるため、可能なクリーンアップ コードはスキップされます。デフォルトとして優先EXPECT_します。

于 2010-04-02T06:30:01.157 に答える