如何捕获ZF2 / ZF3中控制器操作的(ViewModel
)输出?
背景:
我正在为Zend Framework 3应用程序编写一些集成测试(刚刚从ZF2迁移)。我使用PHPUnit v6.2.2
和Zend \ Test v3.1.0
。我想测试从调用路径的那一刻到保存/检索数据的那一刻的过程部分。这意味着测试所有控制器操作的方向:
第一个方向是明确的:在调用路由之后,我只是启动纯数据库请求并检查是否存在预期的更改。
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
。
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.
}
如何在PHPUnit测试中获得操作的输出?
答案 0 :(得分:2)
public function testBuzAction()
{
$this->dispatch('/foo/bar/buz');
...
$viewModelReturnedByAction = $this->getApplication()->getMvcEvent()->getResult();
}