小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


GoogleTestで使えるアサーションマクロまとめ

はじめに

GoogleTestで利用できるアサーションの関数マクロを調べてみました。

基本
致命的なアサーション 致命的ではないアサーション 検証内容
ASSERT_TRUE(condition); EXPECT_TRUE(condition); condition が true
ASSERT_FALSE(condition); EXPECT_FALSE(condition); condition が false
2つの値の比較
致命的なアサーション 致命的ではないアサーション 検証内容
ASSERT_EQ(expected,actual); EXPECT_EQ(expected,actual); expected==actual
ASSERT_NE(val1,val2); EXPECT_NE(val1,val2); val1!=val2
ASSERT_LT(val1,val2); EXPECT_LT(val1,val2); val1<val2
ASSERT_LE(val1,val2); EXPECT_LE(val1,val2); val1<=val2
ASSERT_GT(val1,val2); EXPECT_GT(val1,val2); val1>val2
ASSERT_GE(val1,val2); EXPECT_GE(val1,val2); val1>=val2
文字列の比較
致命的なアサーション 致命的ではないアサーション 検証内容
ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ(expected_str, actual_str); 2つの C 文字列の内容が等しい
ASSERT_STRNE(str1, str2); EXPECT_STRNE(str1, str2); 2つの C 文字列の内容が等しくない
ASSERT_STRCASEEQ(expected_str, actual_str); EXPECT_STRCASEEQ(expected_str, actual_str); 大文字小文字を無視した場合,2つの C 文字列の内容が等しい
ASSERT_STRCASENE(str1, str2); EXPECT_STRCASENE(str1, str2); 大文字小文字を無視した場合,2つの C 文字列の内容が等しくない
致命的なアサーションと致命的ではないアサーション

"致命的なアサーション"と"致命的ではないアサーション"の違いは、テストが失敗した場合、つまり期待値とテスト対象関数の結果が違う場合に、致命的なアサーションの場合は関数の実行がストップします。反対に致命的ではないアサーションの場合は、通常通りプログラムが続行されます。

Google Test を利用する場合,アサーション,つまり,ある条件が真かどうかを調べる文,を書くところから始まります.アサーションの結果には,成功,致命的ではない失敗,致命的な失敗,があります.致命的な失敗が起きた場合は,現在実行中の関数が中断され,それ以外の場合は,通常通りプログラムが続行されます.
入門ガイド ― Google Test ドキュメント日本語訳 はてなブックマーク - 入門ガイド ― Google Test ドキュメント日本語訳


経験ゼロでもできるプログラミング現場の単体テスト
片桐 一宗
翔泳社
売り上げランキング: 56402