2011-08-04 8 views
1

最近、CodeIgniter 1.7.2で作成した私のPHP Webサイトのユニットテストを開始しました。私はPHPUnitを使って私のウェブサイトをテストしたいと思っています。PHPUnitとCodeIgniterを使って作業する1.7.2

私はそれを知り、CodeIgniterのライブラリがあることを知りました& PHPUnit Bridge:http://www.foostack.com/foostack/私はすべてのステップを踏んでコードを実行していますが、コンソールからテストケースを実行すると、デフォルトのコントローラが実行され、ページのhtmlがコンソールに出力されます。

正確に何が起こっているのか教えてください。何か間違っていますか?また、もし誰かがfoostackライブラリを使わずにモデルをテストする他のアイデアを持っているなら、それを提案してください。他の詳細が必要な場合はお知らせください。

ありがとうございました。

答えて

0

CodeIgniterは、PHPUnitでコードを単体テストできる理想的なフレームワークではありません。私は自分自身でFooStackを一度試してみて成功しましたが、それはあまりにも面倒です。神オブジェクトCIが作成するため、CIで分離されたモデルをテストする方法はありません。あなたはしかし、SimpleTestのを試すことができます

、ここであなたを助けることができる良いライブラリです:https://github.com/ericbarnes/codeigniter-simpletest CIに提供ユニットテストライブラリがあること以外

- これはどこにも完全なユニットテストフレームワーク近くで、あなたが基本的なアサーションや報告などをすることを可能にします。

ユニットテストについて本当に深刻な人は、これを評価するフレームワークに移行することをお勧めします。 symfony、Kohana、Lithiumなど

+0

あなたのコメントをお寄せいただきありがとうございます.iもphpunitとCIを統合しようとしましたが、私のホームページの。ですから、phpunit.Needを使ってCIモデルをテストする他の方法はないと思うので、いくつかのR&Dを実行してください。私は基本的なテストを読んだが、それを試したことはありません。私はphpunitが大好きなので、私はthtだけで行っていました。もし何か簡単な方法を見つけたら、私はそれをここに投稿します。 – sagar27

+0

あなたは、CI_Modelクラスを拡張せずにモデルを動作させることができます。代わりに、コンストラクタを使用してCI godオブジェクトを注入し、単体テストでそのオブジェクトをモックします。 –

+0

PHPUnit用のフックとカスタムブートストラップファイルを使って、より良い解決策を見つけました。私は自分のgithubにコードを追加しました:https://github.com/phpfour/CodeIgniter かなりうまくいきます! –

関連する問題