コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「XUnit」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
xUnitの一覧: PerlUnitのリンクを訂正
Cewbot (会話 | 投稿記録)
m Bot作業依頼: sourceタグをsyntaxhighlightタグに置換 (Category:非推奨のsourceタグを使用しているページ) - log
17行目: 17行目:
=== テストの実行 ===
=== テストの実行 ===
個々のユニットテストは以下のような流れで実行される。
個々のユニットテストは以下のような流れで実行される。
<source lang="c">
<syntaxhighlight lang="c">
setup(); /* 最初に、テストのためのクリーンな
setup(); /* 最初に、テストのためのクリーンな
環境(設定など)を用意する。 */
環境(設定など)を用意する。 */
26行目: 26行目:
他のテストやプログラムに影響を与えないよう、
他のテストやプログラムに影響を与えないよう、
初めに用意したテスト用の環境を元に戻す。 */
初めに用意したテスト用の環境を元に戻す。 */
</syntaxhighlight>
</source>
setup() と teardown() の各メソッドは、テストフィクスチャの初期化とクリーンアップを行うためのものである。
setup() と teardown() の各メソッドは、テストフィクスチャの初期化とクリーンアップを行うためのものである。



2020年7月5日 (日) 22:45時点における版

xUnitとは、コンピュータプログラム単体テスト(ユニットテスト)を行うためのテスティングフレームワークの総称である。これらのフレームワークでは、関数やクラスなど、ソフトウェアの様々な要素(ユニット)をテストすることができる。xUnitフレームワークの主な利点は、テストを自動化できること、同じテストを何度も書かずに済むこと、個々のテストの結果がどうあるべきかを覚えておかなくても良いことである。

このようなフレームワークの最初の実装は、ケント・ベックが開発したSmalltalk用のテスティングフレームワークSUnitである。その後、各コンピュータプログラム言語や開発環境毎に、同様の設計を持つフレームワークが多数作成されている。xUnitそれ自体は非常に単純なプログラムであるが、近年のソフトウェア開発で採用されつつある。JUnitJava用のxUnit)の項目も参照。

アジャイルソフトウェア開発エクストリーム・プログラミングなど)においては、リファクタリングテストファースト等の前提となる重要な要素である。

xUnitの設計

xUnitフレームワークの設計上の特徴は、いくつかの部分に分けられる。言い換えると、以下の特徴をすべて持つテストフレームワークはxUnitフレームワークの一種であるといえる。

テストフィクスチャ

テストを実行、成功させるために必要な状態や前提条件の集合を、フィクスチャと呼ぶ。これらはテストコンテキストとも呼ばれる。開発者はテストの実行前にテストに適した状態を整え、テスト実行後に元の状態を復元することが望ましい。

テストスイート

同じフィクスチャを共有するテストの集合を、テストスイートと呼ぶ。テストスイート内のそれぞれのテストの実行順序は保証されない。

テストの実行

個々のユニットテストは以下のような流れで実行される。

setup(); /* 最初に、テストのためのクリーンな
            環境(設定など)を用意する。 */
...
/* テストの本体。ここですべてのテストを行う。 */
...
teardown(); /* 最後は、テストが成功したか失敗したかに関わらず、
               他のテストやプログラムに影響を与えないよう、
               初めに用意したテスト用の環境を元に戻す。 */

setup() と teardown() の各メソッドは、テストフィクスチャの初期化とクリーンアップを行うためのものである。

アサーション(表明、検証)

テスト対象の関数やクラスなどについて、振る舞いや状態を確認するための関数やマクロを、アサーションと呼ぶ。アサーションが失敗した時(実際の実行結果が期待される結果と異なっていた場合)は、一般的には、例外が投げられ現在のテストの実行は中断される。

xUnitの一覧

関連項目

脚注

  1. ^ Test::UnitとしてRuby1.8の標準添付ライブラリに統廃合された。