検索
連載

タダでソフト開発の生産性と品質を上げる方法(6):高機能な単体テストツール「GoogleTest」を使いこなす(その1)山浦恒央の“くみこみ”な話(96)(4/4 ページ)

「タダでソフト開発の生産性と品質を上げる方法」の第6回。前回紹介したグーグル(Google)製の単体テストフレームワーク「GoogleTest」には高度な機能がありますが、今回は「アサーションマクロ」と「テストフィクスチャの使い方」を取り上げます。

Share
Tweet
LINE
Hatena
前のページへ |       

3.2 実行結果

 上記のプログラムを実行すると、結果は、次のようになります。

図1
図1 実行結果

 実行結果を見ると、以下の順番でテスト実施していることが分かります。

  1. TEST_F(CarTestFixture, CheckInitValue)を実行する
  2. TEST_F(CarTestFixture, CheckInitValue)の中身を実行する前に、SetUpメソッドを実行し、Carクラスを確保する
  3. TEST_F(CarTestFixture, CheckInitValue)を実行し、初期値が正しいかテストする
  4. TEST_F(CarTestFixture, CheckInitValue)を実行後、TearDownメソッドが実行され、Carクラスを開放する(以下略)

 上記のように、テストフィクスチャを使用すると、テストの事前、事後条件を設定でき、テストを円滑に実施できるようになります。

4.まとめ

 今回の内容を以下にまとめます。

  • GoogleTestには、多くのアサーションマクロがあり、これを使えばプログラムの実行中に、変数の値をチェック、テストできます
  • テストフィクスチャを使用すると、テストの事前条件、事後条件が設定できるため、テストの環境構築が簡単になります

5.終わりに

 今回は、高機能なGoogleTestの一端、特に、アサーションと、テスト条件を設定するテストフィクスチャを説明しました。これらは、GoogleTest特有のものではなく、C/C++以外のxUnit系ツールにも存在します。自身が使用する言語のxUnit系ツールを確認すると良いでしょう。

 次回は、もう1つの高機能、「パス網羅(Gcovとの連携法)」を取り上げます。

参考文献

[1]「モダンC言語プログラミング」(花井志生、2013、KADOKAWA/アスキーメディアワークス社)


【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る