路径:tests\TestCase.php
<?php namespace Tests; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { use CreatesApplication; public $user; public $params; public $authHeader; /** * User login * @param array $params * @return mixed */ public function userLogin($params = []) { $params = [ 'username' => '荷逸', 'password' => '123456', 'remember' => 'true' ]; $response = $this->post( '/api/app/login', $params, #调用下面拼接token的方法 $this->headers() ); $users = $response->getOriginalContent(); return $users; } /** * Setting request header * @param null $user * @param array $addition * @return array */ protected function headers($user = null, $addition = []) { #添加版本号头部信息 $headers = ['Accept' => 'application/json', 'apply-secret' => 'base64:szoJ3mSx/5U7zOsJfU7s4pSahiwdh01x6badmz5FtCM=']; #拼接 token if (!is_null($user)) { $headers['Authorization'] = 'Bearer ' . $user['message']['access_token']; } if ($addition) { $headers = array_merge($headers, $addition); } return $headers; } }
路径:tests\Feature\UserTest.php
<?php namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class UserTest extends TestCase { public function setUp(): void { #每个test方法之前都会调用一次这个方法 parent::setUp(); // $this->params = $this->readyApiParams(); /** Get auth info include token */ #调用用户登录的操作 $user = $this->userLogin(); $this->user = $user; #获取用户 token $this->authHeader = $this->headers($user); } // protected function readyApiParams() //{ // #这个方法用来放test里需要的参数 // $params = []; // $login = [ // 'username' => '荷逸', // 'password' => '123456' // ]; // $params['login'] = $login; // // return $params; // } //个人中心 public function testUserIndex() { $response = $this->json( 'get', 'api/app/user', [], $this->authHeader ); $response->dump()->assertStatus(200); } }
php artisan test