xUnit は、共通の祖先であるSUnitにまで遡ることができる重要な構造と機能を共有する自動テストソフトウェア フレームワークに使用されるラベルです。
SUnitフレームワークは、Kent BeckとErich GammaによってJavaに移植され、 JUnitとして広く普及しました。他の言語への移植も盛んに行われ、構造化されたオブジェクト指向スタイルはJavaやC#などの一般的な言語でもうまく機能すると主張する人もいました。
適応型の名称は、多くの場合、「SUnit」の「S」を対象言語名の略語に置き換えたものです。例えば、Javaの場合はJUnit、Rの場合はRUnitです。「xUnit」という用語は、このような適応型を指します。ここで「x」は言語固有の接頭辞のプレースホルダーです。
xUnit フレームワークは、ユニット テスト(分離されたコード ユニットのテスト) によく使用されますが、統合やシステムを含むあらゆるレベルのソフトウェア テストに使用できます。
建築
xUnitフレームワークは次のような一般的なアーキテクチャを持っています。[ 1 ]
テストケース
テストケースはテストの最小単位であり、通常はテスト対象ソフトウェアにおける単純なパスをコード化したものです。テストケースコードは、入力データと環境状態を準備し、テスト対象ソフトウェアを起動し、期待される結果を検証します。
プログラマーは各テストケースのコードを書きます。
アサーション
テスト ケースは、期待される結果を検証する 1 つ以上のアサーションを使用して実装されます。
一般的に、フレームワークはアサーション機能を提供します。フレームワークによっては、カスタムアサーションを使用する方法を提供する場合もあります。
テストスイート
テストスイートは、関連するテストケースの集合です。テストスイートは共通のフレームワークを持ち、環境設定とクリーンアップコードの再利用を可能にします。
一般に、テスト ランナーはスイートのケースを任意の順序で実行できるため、プログラマーは上から下への実行順序に依存すべきではありません。
テストフィクスチャ
テストフィクスチャ(テストコンテキストとも呼ばれます)は、スイート内の各テストケースの環境を提供します。通常、フィクスチャは、テスト実行前に既知の適切な実行環境をセットアップし、テスト実行後に環境をクリーンアップするように構成されます。
フィクスチャは、状態をセットアップおよびクリーンアップする1つ以上の関数で構成されています。テストランナーは、各ケースの前に各セットアップ関数を実行し、ケースの後に各クリーンアップ関数を実行します。
テストランナー
テストランナーはテストを実行し、結果を報告するプログラムです。[ 2 ]このプログラムはフレームワークの一部となることが多いです。
テストランナーは様々な形式で結果を生成します。多くの場合、人間が読めるプレーンテキスト形式が一般的かつデフォルトの形式です。さらに、ランナーは構造化された出力を生成することもあります。一部のxUnitアダプテーション(JUnitなど)は、JenkinsやAtlassian Bambooなどの継続的インテグレーションシステムで使用できるXMLを出力できます。
参照
- エクストリームプログラミング - ソフトウェア開発方法論
- ユニットテストフレームワークのリスト
- ソフトウェアテスト – 標準に照らしてソフトウェアをチェックする
- テスト駆動開発 - コードの書き方
- Test Anything Protocol – ソフトウェアテストプロトコル
- ユニットテスト – 分離されたソースコードの動作を検証する
参考文献
- ^ Beck, Kent. 「Simple Smalltalk Testing: With Patterns」 . 2015年3月15日時点のオリジナルよりアーカイブ。 2015年6月25日閲覧。
- ^ Meszaros, Gerard (2007) xUnit テストパターン、Pearson Education、Inc./Addison Wesley
外部リンク
- Jeffries, Ron (2004年11月19日). 「様々なユニットテストフレームワークの一覧」 . 2005年8月19日時点のオリジナルよりアーカイブ。
- Meszaros, Gerard (2007). xUnitテストパターン:テストコードのリファクタリング. Addison-Wesley. p. 833. ISBN 9780131495050。
- Fowler, Martin (2006年1月17日). 「xUnit」 . テスト.
- 「xUnit 用のオープンソース依存性注入」。GitHub。テスト。