タダでソフト開発の生産性と品質を上げる方法(6):高機能な単体テストツール「GoogleTest」を使いこなす(その1):山浦恒央の“くみこみ”な話(96)(4/4 ページ)
上記のプログラムを実行すると、結果は、次のようになります。
図1 実行結果
実行結果を見ると、以下の順番でテスト実施していることが分かります。
- TEST_F(CarTestFixture, CheckInitValue)を実行する
- TEST_F(CarTestFixture, CheckInitValue)の中身を実行する前に、SetUpメソッドを実行し、Carクラスを確保する
- TEST_F(CarTestFixture, CheckInitValue)を実行し、初期値が正しいかテストする
- TEST_F(CarTestFixture, CheckInitValue)を実行後、TearDownメソッドが実行され、Carクラスを開放する(以下略)
上記のように、テストフィクスチャを使用すると、テストの事前、事後条件を設定でき、テストを円滑に実施できるようになります。
今回の内容を以下にまとめます。
- GoogleTestには、多くのアサーションマクロがあり、これを使えばプログラムの実行中に、変数の値をチェック、テストできます
- テストフィクスチャを使用すると、テストの事前条件、事後条件が設定できるため、テストの環境構築が簡単になります
今回は、高機能な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.