2011-01-27 10 views
1

私たちが開発してきた方法では、PHPファイルの多くは内容を出力することを期待しているだけです。メソッドは呼び出されません。私の質問は、PHPUnitでこれをテストする "正しい"方法は何ですか? setUprequireを入れて、実行するまで待つか、悪いmojoと見なすべきですか?PHPテスト出力するファイルのみを含める

+0

これは使用できません=> http://www.phpunit.de/manual/current/en/testcase-extensions.html#testcase-extensions.output? – Alfred

+0

@Alfred私はそれを使用しています。私の質問は、「必要」を持つ適切な場所についてです。 –

+0

ええ、それは(今のところ)それのようにする必要があります。 require_onceを使った方が良いと思います。しかし、出力バッファリングは、今後どのようにテストを書くべきかではないことを指摘したいと思います(しかし、あなたはすでにそれを理解していると思います)。 – Alfred

答えて

2

これは、テストできる唯一の方法です。 output bufferingを使用して、作成されたコンテンツをキャプチャして期待通りに確認できると思っています。

最も一般的な方法でPHPUnitからテストするのに適した、呼び出し元に結果を返す自己完結型のクラス/関数でできるだけ多くの作業が行われるように、コードをリファクタリングするのが最も良い方法です。

+0

最終的には、そのリファクタリングが目標です。私たちはまだそれに近いところにいません。 –

+0

私はそのようなコードで作業しました。 :-) –

2

アプリケーションがWebアプリケーションの場合(ブラウザが読み込み可能なコンテンツを出力する場合)、PHPUnitはSeleniumと統合されています。これはWebアプリケーションテストシステムです。それは本当に非常に便利です。特にFirefoxプラグインがあるためです。

PHPUnitとSeleniumについてはPHPUnit Manualで詳しく読むことができます。

テンプレート(つまりインクルードファイル)がコマンドラインスクリプトで使用されている場合は、output_bufferingと正規表現アサーションまたは正規アサーション(assertRegExp、assertEquals)を使用します。

関連する問題