mockWebApplication([ 'components' => [ 'errorHandler' => [ 'class' => 'yiiunit\framework\web\ErrorHandler', 'errorView' => '@yiiunit/data/views/errorHandler.php', 'exceptionView' => '@yiiunit/data/views/errorHandlerForAssetFiles.php', ], ], ]); } public function testCorrectResponseCodeInErrorView() { /** @var ErrorHandler $handler */ $handler = Yii::$app->getErrorHandler(); ob_start(); // suppress response output $this->invokeMethod($handler, 'renderException', [new NotFoundHttpException('This message is displayed to end user')]); ob_get_clean(); $out = Yii::$app->response->data; $this->assertEquals('Code: 404 Message: This message is displayed to end user Exception: yii\web\NotFoundHttpException', $out); } public function testClearAssetFilesInErrorView() { Yii::$app->getView()->registerJsFile('somefile.js'); /** @var ErrorHandler $handler */ $handler = Yii::$app->getErrorHandler(); ob_start(); // suppress response output $this->invokeMethod($handler, 'renderException', [new \Exception('Some Exception')]); ob_get_clean(); $out = Yii::$app->response->data; $this->assertEquals('Exception View ', $out); } public function testRenderCallStackItem() { $handler = Yii::$app->getErrorHandler(); $handler->traceLine = '{html}'; $file = \yii\BaseYii::getAlias('@yii/web/Application.php'); $out = $handler->renderCallStackItem($file, 63, \yii\web\Application::className(), null, null, null); $this->assertContains('', $out); } } class ErrorHandler extends \yii\web\ErrorHandler { /** * @return bool if simple HTML should be rendered */ protected function shouldRenderSimpleHtml() { return false; } }