5. 2. テスト駆動開発の効果
テスト駆動開発のテストはデベロッパテスト
デ ベ ロ ッ パ テ ス ト ” D e v e lo p e r t e s t s ” )
( :
ユニットテスト
(”Unit tests”) 分離され、
- アトミックで、無害なもの。
これはxUnitによって実行されます。
結 合 テ ス ト ” In t e g r a t io n t e s t s ” )
( :
システムの状態を変更する可能性がある分離されたテスト。すなわちデータベースに保存したり、 ファイル
に出力したりするもの。結合テストは機能要件をそのまま表すものではありません。
これはxUnitで書く と
こ
もできます。検証するのは対象となるコードと、サードパーティーのツールや自分たちが書いたコードの別
レイヤとの結合です。別のレイヤというのはつまり、ビジネスロジックレイヤがデータアクセスレイヤを要求
するといったものです。
機 能 テ ス ト ” F u n c t io n a l t e s t s ” )
( :
(システムテスト
(”System tests”)
とも呼ばれる)
システムを全体と見た時の一部分、 つまり機能要求を実行するテスト。
このテストはシステムの状態を変更す
るかもしれません。
プロダクトオーナテスト
(”Product Owner test”)
:
受入テスト
(”Acceptance tests”) 技術側の人間ではないプロダクトオーナによって入出力が検証され
-
る機能テスト。
10. 3. ツールあれこれ
Unit Testを実行する為のツール。
1 . C o d e Ig n it e r 本 体 の U n it t e s t C la s s の 利 用
http://codeigniter.jp/user_guide_ja/libraries/unit_testing.html
2 . S im p le T e s t の 利 用
http://www.simpletest.org/
http://mistymagich.wordpress.com/2011/10/24/codeigniter-simpletest/
3 . P H P U n it の 利 用
http://www.phpunit.de/manual/current/ja/
http://www.knollet.com/foostack/
CodeIgniterは疎結合ではないため、 CIUnitというライブラリを利用してPHPUnitが実行
できる環境を整えます。
11. 3. ツールあれこれ
3 . P H P U n i t の 利 用
を中心にこの後の話を続けます。
14. 4. 環境構築 1. PHPUnitのインストール
P H P u n itを イ ン ス ト ー ル し ま す 。
h t t p : / / w w w . p h p u n i t . d e / m a n u a l / 3 . 6 / ja / i n s t a l l a t i o n . h t m l
※環境に合わせてインス トールを実行する必要があ ります。
$ pear config-set auto_discover 1
$ pear install pear.phpunit.de/PHPUnit