2010-12-31 14 views
2

は私がユニットテスト:ZendののErrorController内の非オブジェクトのメンバ関数hasResource()の呼び出し

Fatal error: Call to a member function hasResource() on a non-object in D:\Projects\Tickle\application\controllers\ErrorController.php on line 53

ライン53のルックス

のように、このエラーを取得しています
if (!$bootstrap->hasResource('Log')) { 

それは$this->getInvokeArg('bootstrap')戻りnullのように思えます。私は他のエラーはありません。私は別の問題のために別の場所を読んだり、コントローラやブートストラップなどをリセットする例外が発生する可能性があります。その例外は表示されない可能性がありますか? PHPのエラーログでさえ?

私の現在の設定はIが単一のテストが正常に実行1つのテストhttp://pastebin.com/CsrLys4v

が残っていますまで、私はすべてのファイルを削除/テストを試してみましたPHPUnitのbootstrap.phpのhttp://pastebin.com/YiP7i736

    • のように見えますが、私はまだエラーがあります

      D:\Projects\Tickle\tests>phpunit 
      PHPUnit 3.5.5 by Sebastian Bergmann. 
      
      . 
      Fatal error: Call to a member function hasResource() on a non-object in D:\Projects\Tickle\application\controllers\Error 
      Controller.php on line 53 
      
  • +0

    テストを実行できましたか? –

    +0

    @ St.Woland、えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ、たぶんそれは最後に投げられるでしょう、何かを誘発しますか? –

    +0

    アプリケーションのエラーリソースを無効にして、どの出力が得られるかを確認してください。これは、あなたのコードの他のいくつかのエラーに関連している可能性があります。 –

    答えて

    6

    b ootstrap paramは、$application->run()に電話すると登録されます。ユニットテストのブートストラップでは、runは呼び出されません。あなたはこのコードで自分自身でboostrapパラメータを設定する必要があります:

    +0

    どうすれば '$ bootstrap'も手動で設定できますか? –

    +0

    ああ...私は使用することができ、 '$用途向け> getBootstrap()'しかし、どのように私は私の 'ControllerTestCase'から' $のapplication'を得ることができますか?私はPHPUnitの中でその行を入れてみました 'それは動作しませんでしたbootstrap.php'、私はまだ不足しているリソース –

    +0

    私はあまりにも見つけるいくつかの奇妙、私は'私はモジュールを使用していないカントー「いいえ、デフォルトのモジュールが定義されていない」と私に取得していますを得ました私はすでに定義されているapplication.ini' 'controllerDirectory'私Qnの&ソル[**こちら**](http://stackoverflow.com/questions/4507165/zend-test-no-default-module-defined-for-this -応用)。彼らが関係しているのだろうか。私のfrontControllerがリセットされたかのようです。いつ '$ブートストラップ=の$ this - > getFrontController() - > getParam( 'ブートストラップ')'と 'ますprint_r($ブートストラップ)は'私は何を取得 –

    関連する問題