前言:一般做测试一个基础的单元测试开发已经编写好了,我们的目的就是编写一些异常用例,提高代码覆盖率
如何编写一个单元测试?
1、首先我们通过路由定位我们所要测试的模块如下:
<?php
//在Controllers\Admin目录下,staff表示后端接口,后端接口名叫carV2
Route::group(['namespace' => 'Admin', 'prefix' => 'staff', 'name_prefix' => 'staff@carV2'], function () {
// 车源管理 在Controllers\Admin\CarSource
Route::namespace('CarSource')->prefix('car-source')->group(function () {
// 二手车列表 调用了控制器里面的carList函数,并命名为...
Route::post('secondhand/list', 'SecondHandCarController@carList')->name('car-source-secondhand.list');
});
});
?>
2、在tests目录下编写单元测试或者功能测试
<?php
//命名空间(除根目录下的绝对路径)
use Tests\TestCase//引入框架
//引入自己写的方法
class A1 extend TestCase//继承框架
{
public function setUp():void
{
parent::setUp();
}
public function testaddBranch()
{
$data = [
'perPage' => $this->faker->numberBetween(1,5),
'page' => $this->faker->numberBetween(1,3)
];
$response = $this->json('post','url',$data);
dump($response->content());
dump($response->json());
$response->assertStatus(200);
}
public function testAdTypeList()
{
//$response = $this->post('/car-v2/staff/merchant/team/list', $data, ['staff-id' => $this->faker->numberBetween(1,9)]);
$response = $this->json('get','url');
dump($response->json());
$response->assertStatus(200);
public function tearDown():void
{
parent::tearDown();
}
}
?>
3、使用phpunit命令输出测试报告
php生成的测试报告:主要是在controler和service里面查找,具体每个写的路由,在route.php里面看对应的路径,找到的如果显示的是绿色表示已被覆盖,否则没有被覆盖