1

ZF2/ZF3のコントローラアクションの出力(ViewModel)を取得するにはどうすればよいですか?ZF2/ZF3でアクションの出力をテストする方法は?

背景:

私は(ちょうどZF2から移行)Zend Frameworkの3アプリケーションのためのいくつかの統合テストを書いています。 PHPUnit v6.2.2とZend \ Test v3.1.0を使用しています。私は、ルートが呼び出された瞬間から、データが保存/取得される瞬間まで、プロセスの一部をテストしたいと思います。それは方向に内のすべてのコントローラアクションのテストを意味します(このために、私はルート/アクションを呼び出すし、新しいデータベースの状態を確認したい)期待通りにデータが保存されます

  1. データが期待どおりに取得されます(これはルート/アクションを呼び出し、アクションの出力を確認するためです)。

最初の方向は明確です:ルートを呼び出した後、単純なデータベース要求を開始し、期待される変更があればチェックします。

public function testBuzAction() 
{ 
    $this->dispatch('/foo/bar/buz'); 
    // Here might be optionally some asserts, whether the correct action is called... 
    // Here are the database checks... 
} 

しかし、他の方向については、アクションによって返されたViewModelが必要です。 PHPUnitのテストwothinアクションの出力を取得する方法

public function testBuzAction() 
{ 
    $this->dispatch('/foo/bar/buz'); 
    // Here might be optionally some asserts, whether the correct action is called... 
    // Here is the ViewModel output of the Bar#buzAction() analyzed. 
} 

答えて

1
public function testBuzAction() 
{ 
    $this->dispatch('/foo/bar/buz'); 
    ... 
    $viewModelReturnedByAction = $this->getApplication()->getMvcEvent()->getResult(); 
} 
関連する問題