Laravel 5:控制器测试 - PHPUnit的返回绿色
问题描述:
下面这个简单的控制器测试发出“GET”请求PostsController @ index动作:Laravel 5:控制器测试 - PHPUnit的返回绿色
<?php
class PostsControllerTest extends TestCase {
public function testIndex()
{
$response = $this->action('GET', '[email protected]');
}
}
在我的理解,如果索引方法不存在我控制器,当我在命令行中调用phpunit时,我不应该得到绿灯。
然而,我的控制器看起来是这样的:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
// public function index()
// {
// //
// return 'Posts Index';
//}
}
您可以清楚地看到索引方法被注释掉了,我仍然得到这个:
**OK (1 test, 0 assertions)**
有什么建议?
答
你没有做出任何断言。您的测试不检查$response
是否“OK”。
测试改成这样:
public function testIndex()
{
$response = $this->action('GET', '[email protected]');
$this->assertEquals(200, $response->status());
}
这个测试断言,页报以200 status code,这意味着它是成功的。
您可以阅读Laravel的测试here。