akimachoのはてなブログ

ICTとデザインのためのブログ

xUnitとは何だろうか

f:id:akimacho:20150227183544j:plain

 

きっかけ

tokuhiromさんの『Perlスティングハンドブック』という本を読んでいて,以下のような文章に出会いました.

subtestを利用すると以下のようなネストしたテストケースをかけます。Scope::Guardなどとくみあわせればsetup/teardownなども書けますね。

setup?teardown?とは何でしょうか.気になります.

(Scope::GuardというCPANモジュールはまた今度…)

調べてみると,setupとteardownはxUnitと関連したものであることが分かりました.

なので,今回はxUnitについてまとめていきたいと思います.

以下のサイトを参考にしました.

xUnit - Wikipedia

xUnit - Wikipedia, the free encyclopedia

Test fixture - Wikipedia, the free encyclopedia

なお,私はxUnitに関しては素人なので至らないところがきっとあると思います.間違ったところがありましたら,ぜひ指摘をよろしくお願いします.

Perl テスティング ハンドブック

Perl テスティング ハンドブック

 

 

 

xUnitとはテストフレームのこと

単体テストを行うためのテストフレームワークの規格です.これを元に,JUnitやCUnitなどの各言語に対応したテストフレームワークが実装されています.

xUnitの諸要素

* テストランナー(Test runner)
* テストケース(Test case)
* テストフィクスチャ(Test fixture)
* テストスイート(Test suites)
* テストの実行(Test execution)
* テスト結果のフォーマット(Test result formatter)
* アサーション,表明,検証(Assertion)

テストランナー

xUnitフレームワークを使ってテストを走らせるプラグラムを指します.

テストケース

入力に対してプログラムが行う出力の期待値(のセット)です.

テストフィクスチャ

テストを実行するための前提条件を指します.例として,特定のデータベースやオペレーティングシステムがインストールされていることやインプットするデータやスタブが準備されていることが挙げられます.

テストスイート

同じフィクスチャを共有するテスト一式を指します.

テストの実行

単体テストの実行は,初期化を行うメソッドsetup(),テスト本体,終了処理(後片付け)を行うteardown()の順で行われます.

テスト結果のフォーマット

テストランナーは結果としてアウトプットをもたらします.しばしば出力されるフォーマットにはXMLが用いられます.

アサーション

プログラムの振る舞いや状態を実証するプログラムを指します.

まとめ

当初の疑問に対する答えとして,setupとteardownはテストの実行の際に行われるもので,setupは初期化,teardownは終了処理を指すことが分かりました.

あと疑問点として,TAP:Test Anything Protocolはどこあたりに位置づけられるのかなと思いました.