>  기사  >  개발 도구  >  phpstorm hyperf 단위 테스트를 구성하는 방법을 가르쳐주세요

phpstorm hyperf 단위 테스트를 구성하는 방법을 가르쳐주세요

藏色散人
藏色散人앞으로
2020-07-23 13:26:165507검색
튜토리얼 칼럼의 PHPSTORM HYPERF 유닛 테스트 구성입니다. 필요한 친구들에게 도움이 되길 바랍니다!

phpstorm hyperf 단위 테스트를 구성하는 방법을 가르쳐주세요

1. PHPUnitFrameworkTestCase

에서 상속되는 testCase 기본 클래스를 만듭니다. 팁: 로그인에 성공한 후 토큰을 캐시에서 직접 가져올 수 있습니다.
<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://doc.hyperf.io
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
 */

namespace HyperfTest;

use App\Model\SysUser;
use App\Service\Instance\JwtInstance;
use Hyperf\Testing\Client;
use PHPUnit\Framework\TestCase;

/**
 * Class HttpTestCase.
 * @method get($uri, $data = [], $headers = [])
 * @method post($uri, $data = [], $headers = [])
 * @method json($uri, $data = [], $headers = [])
 * @method file($uri, $data = [], $headers = [])
 */
abstract class AdminTestCase extends TestCase
{
    /**
     * @var Client
     */
    protected $client;

    // token缓存key
    protected $cacheKey = &#39;test_admin_token&#39;;

    // token
    protected $header = [];


    public function __construct($name = null, array $data = [], $dataName = &#39;&#39;)
    {
        parent::__construct($name, $data, $dataName);
        $this->client = di(Client::class);
        $this->login();
    }

    public function __call($name, $arguments)
    {
        return $this->client->{$name}(...$arguments);
    }

    /**
     * @return mixed|string
     * @throws \Psr\SimpleCache\InvalidArgumentException
     */
    public function login()
    {
        $token = cache()->get($this->cacheKey);
        $this->header[&#39;token&#39;] = $token;
        if (!$token) {
            $userId = 1;
            $user = SysUser::query()->where([&#39;user_id&#39; => $userId])->first();
            $token = JwtInstance::instance()->encode($user);
            $this->header[&#39;token&#39;] = $token;
            // 设置到缓存
             cache()->set($this->cacheKey,  $token, 43200);
        }
        return $token;
    }

    /**
     * @param array $result
     * @return false|string
     */
    public function pretty(array $result)
    {
        // 表示成功
        $this->assertSame(0, 0);
        echo  json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . PHP_EOL;
    }
}

2. AdminTestCase를 상속하는 테스트 컨트롤러를 작성한 다음 테스트 케이스를 작성합니다.

<?php
/**
 * Created by PhpStorm.
 * User: phpstorm
 * Date: 2020/6/9 14:36
 * Description:
 */


namespace HyperfTest\Cases\Admin;


use App\Service\SysUserService;
use HyperfTest\AdminTestCase;
use Swoole\Coroutine\Channel;
use Hyperf\Utils\Context;

class SysUserControllerTest extends AdminTestCase
{
    // 测试
    public function testGet()
    {
        // $this->assertTrue(true);

        $res = $this->client->get(&#39;/&#39;);

        // $this->assertSame(0, $res[&#39;code&#39;]);

        $this->pretty($res);
    }


    /**
     * 后台用户列表
     * 执行命令:composer test -- --filter testGetSysUserList --group adminUser
     *
     * @group adminUser
     */
    public function testGetSysUserList()
    {
        $params = [
            &#39;username&#39; => &#39;&#39;,
            &#39;page&#39; => 1,
            &#39;limit&#39; => 20
        ];
        $result = $this->get(&#39;/admin/sys/user/list&#39;, $params, $this->header);

        $this->pretty($result);
    }
}

testGetSysUserList 메소드 왼쪽에 있는 녹색 삼각형을 클릭합니다.
  • phpstorm hyperf单元测试配置
  • 또는 다음에서 명령을 직접 사용할 수 있습니다. 프로젝트 디렉터리:

    composer test -- --filter testGetSysUserList --group adminUser

  • 실행 결과:

    phpstorm hyperf单元测试配置
3.hyperf가 코루틴을 켜면 phpunit을 사용할 수 없습니다. 따라서 phpstorm 구성을 수정해야 합니다

1단계: phpstorm->settings->언어 ​​& Frameworks->PHP->CLI Interpreter

phpstorm hyperf单元测试配置

phpstorm hyperf单元测试配置

phpstorm hyperf单元测试配置 열기

구성 후 [확인] 또는 [적용]을 클릭하세요

phpstorm hyperf单元测试配置

2단계: 프로젝트 디렉터리 매핑

[확인]을 클릭하세요.

phpstorm hyperf单元测试配置

3단계: co-phpunit 명령 구성

phpstorm-> 열기 ;settings->언어 ​​& Frameworks->PHP-> ;Test Frameworks

phpstorm hyperf单元测试配置

phpstorm hyperf单元测试配置

그림과 같이 구성하고 [확인] 또는 [적용]을 클릭하여 저장

phpstorm hyperf单元测试配置 한 후 당신은 hyperf 유닛을 즐겁게 디버깅할 수 있습니다.

위 내용은 phpstorm hyperf 단위 테스트를 구성하는 방법을 가르쳐주세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제