我正在对Web应用程序进行单元测试。我在Laravel和PHP单元测试方面的经验还太年轻。现在,我只是在玩Laravel单元测试。现在,我正在测试返回到路线的视图是否包含特定文本。很简单的。这就是我所做的。
我创建了一个名为unit_test.blade.php的视图,其中包含以下内容
sudo apt install libpython2.7-dev:armhf
这是显示该视图的途径
/usr/include/python2.7/pyconfig.h:24:54: fatal error: arm-linux-gnueabihf/python2.7/pyconfig.h: No such file or directory
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
这是我的测试类和功能
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
This is unit test
</body>
</html>
我的测试功能很简单。它只是检查视图是否包含文本“ unit”。但是当我在命令行中运行测试时,它给出了
Route::get('unit/test', function(){
return view('unit_test');
});
我正在返回路线中的视图。我的代码有什么问题?我该如何测试?
答案 0 :(得分:1)
如评论中所述,您可以在测试用例中使用$response->content()
来检查实际呈现的HTML。
还有一个附加功能:您可以使用$response->assertSeeText($string)
来检查HTML中是否存在任何字符串。该方法几乎与您所做的($this->assertContains('unit', $response->content())
一样,额外调用了strip_tags()
。
另外,在将数据传递到视图时使用$response->assertViewHas()
,例如
Route::get('unit/test', function() {
return view('unit_test', [
'some_var' => 'some value',
]);
});
在测试案例中:
$response = $this->get('unit/test');
$response->assertViewHas('some_var');
答案 1 :(得分:0)
在测试中,请尝试禁用“异常处理”以查看发生的情况。
$this->withoutExceptionHandling();
答案 2 :(得分:0)
这可能是重定向响应。
例如,您未经身份验证并请求了受保护的路由,您将收到状态为302的登录重定向响应。