【发布时间】:2018-07-20 14:43:52
【问题描述】:
我正在对我的 Web 应用程序进行单元测试。我在 Laravel 和 PHP 单元测试方面的经验太年轻了。现在,我只是在摆弄 Laravel 单元测试。现在,我正在测试返回到路由的视图是否包含特定文本。很简单。这就是我所做的。
我创建了一个名为 unit_test.blade.php 的视图,其中包含以下内容
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
This is unit test
</body>
</html>
这是显示该视图的路径
Route::get('unit/test', function(){
return view('unit_test');
});
这是我的测试类和函数
class ApiV2EventController extends TestCase
{
public function testUnitTest()
{
$response = $this->get('unit/test');
$response->assertViewHas('unit');
}
}
我的测试功能很简单。它只是检查视图是否包含文本“单元”。但是当我在命令行中运行测试时,它给出了
There was 1 failure:
1) Tests\Feature\ApiV2EventController::testUnitTest
The response is not a view.
我正在返回路线中的视图。我的代码有什么问题?如何测试?
【问题讨论】:
-
那不是单元测试,看起来像是验收测试
-
但是我的代码有什么问题?不过我做得对。但没有给我预期的结果
-
你不应该
return View::make('unit_test');吗? -
这是laravel的老办法
-
如果我设置了一个无效的视图(一个不存在的文件)我会得到同样的错误
The response is not a view.你可以通过在你的测试用例中执行echo $response->content();来获得准确呈现的 HTML 并检查输出。这将显示是否有任何其他错误。
标签: php laravel unit-testing