Heim > Entwicklungswerkzeuge > phpstorm > Erfahren Sie, wie Sie den PHPStorm-Hyperf-Unit-Test konfigurieren

Erfahren Sie, wie Sie den PHPStorm-Hyperf-Unit-Test konfigurieren

藏色散人
Freigeben: 2020-07-23 13:26:30
nach vorne
5542 Leute haben es durchsucht
Die folgende Tutorialspalte wird von

phpstorm eingeführt, um die PHPSTORM Hyperf-Einheitentestkonfiguration vorzustellen. Ich hoffe, dass sie für Freunde in Not hilfreich sein wird!

Erfahren Sie, wie Sie den PHPStorm-Hyperf-Unit-Test konfigurieren

1. Erstellen Sie eine von PHPUnitFrameworkTestCase geerbte testCase-Basisklasse

Tipps: Legen Sie als nächstes das Token nach erfolgreicher Anmeldung in den Cache Sekundäre Schnittstellenanforderungen können direkt aus dem Cache abgerufen werden.

<?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;
    }
}
Nach dem Login kopieren

2. Schreiben Sie einen Testcontroller, der AdminTestCase erbt, und schreiben Sie dann einen Testfall

<?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);
    }
}
Nach dem Login kopieren

  • Klicken Sie auf das grüne Dreieck links neben der testGetSysUserList-Methode:

    phpstorm hyperf单元测试配置
  • Oder Sie verwenden den Befehl direkt im Projektverzeichnis:
    composer test -- --filter testGetSysUserList --group adminUser
    Nach dem Login kopieren

  • Ausführungsergebnis:

    phpstorm hyperf单元测试配置
  • 3. Wenn Hyperf Coroutinen aktiviert, kann PHPUnit nicht verwendet werden. Sie müssen die Co-PHPUnit verwenden, die mit HyperF geliefert wird Framework, daher müssen Sie die phpstorm-Konfiguration ändern

    Schritt eins: Öffnen Sie phpstorm->settings->sprachen & Frameworks->PHP->CLI Interpreter

    phpstorm hyperf单元测试配置

    phpstorm hyperf单元测试配置

    phpstorm hyperf单元测试配置

    phpstorm hyperf单元测试配置Klicken Sie nach der Konfiguration auf [OK] oder [Übernehmen]

    Schritt 2: Ordnen Sie das Projektverzeichnis zu

    phpstorm hyperf单元测试配置Klicken Sie auf [OK]

    Schritt 3: Konfigurieren Sie das co-phpunit-Befehl

    Öffnen Sie phpstorm-> ;Einstellungen->Sprachen & Frameworks->PHP->Test Frameworks

    phpstorm hyperf单元测试配置

    phpstorm hyperf单元测试配置

    phpstorm hyperf单元测试配置wie im Bild gezeigt Zeigen Sie die Konfiguration an, klicken Sie auf [OK] oder [Übernehmen], um zu speichern

    und dann können Sie die Hyperf-Einheit problemlos debuggen.

    Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie den PHPStorm-Hyperf-Unit-Test konfigurieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage