2012-01-04 18 views
2

は、私は自分のアプリケーションのためのユニットテストを書くことZend_Test_PHPUnitを使用しようとしましたが、私は常にちょうど私がテストコントローラを作成しましたが、そこでも、私はそれを動作させることはできませんZend Frameworkのunittestの

1) IndexControllerTest::testValidation 
Failed asserting last controller used <"error"> was "test" 

を取得します。

誰でも手助けできますか?

ありがとうございます!

class TestController extends Zend_Controller_Action 
{ 

    public function indexAction() 
    { 
     print 'test'; 
    } 

} 

ブートストラップは、次のとおりです。

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); 

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing')); 

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'), 
    get_include_path(), 
))); 

ますrequire_once 'のZend /ローダー/ Autoloader.php'; Zend_Loader_Autoloader :: getInstance();

phpunit.xmlは次のとおりです。

<phpunit bootstrap="./bootstrap.php"> 
    <testsuite name="Application Test Suite"> 
     <directory>./application</directory> 
    </testsuite> 
    <testsuite name="Library Test Suite"> 
     <directory>./library</directory> 
    </testsuite> 

    <filter> 
    <whitelist> 
     <directory suffix=".php">../library/</directory> 
     <directory suffix=".php">../application/</directory> 
     </whitelist> 
    </filter> 
</phpunit> 

テストコントローラは

class IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase 
{ 

    public function setUp() 
    { 
     $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); 
     parent::setUp(); 
    } 

    public function testValidation() 
    { 
     $this->dispatch('/test/'); 
     $this->assertController("test"); 
    } 
} 

答えて

0

あなたTestControllerにおけるエラーのように見えています。

あなたのビューは利用可能ですか(/test/index.phtml)?

良い解決策は、スローされたException(Try/Catchブロックで単体テストをラップし、エラーログに出力する)をチェックすることです。

+0

これは欠落していたビューです。私はJSON-APIだけを作成しました。これが私の見解を必要としなかった理由です。 ありがとうございました! – thesonix

0

まったく同じ問題が発生しましたが、全く異なる問題がありました。

Aより一般的な解決策は...それはerror.phtmlファイルの内容を出力し、少なくともので、試験方法

print_r(strip_tags(
     $this->bootstrap 
      ->getBootstrap() 
      ->getResource('layout') 
      ->content 
    )); die; 

これはZend_Layoutのが使用されていると仮定されているにこれを追加するかもしれませんあなたは何が起こっているかを正確に見ることができます。

次のようなものが表示されます「スタックトレース:」の後に、その後、完全なスタックトレース:「メッセージ」の後に表示される特定のエラーメッセージが表示されて

An error occurred 
Application error 

Exception information: 

    Message: {Your Error Message will appear here} 


Stack trace: 
    {A stack trace will follow...} 

を。

基本的な問題のデバッグには少なくとも役立ちます。