如何进行phpstorm hyperf单元测试配置

这篇文章给大家分享的是有关如何进行phpstorm hyperf单元测试配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1、创建一个testCase基类继承于PHPUnit\Framework\TestCase

tips:把登录成功后的token放到缓存, 下次接口请求可以直接从缓存取。

<?php

declare(strict_types=1);
/**
*ThisfileispartofHyperf.
*
*@linkhttps://www.hyperf.io
*@documenthttps://doc.hyperf.io
*@contactgroup@hyperf.io
*@licensehttps://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
*/

namespaceHyperfTest;

useApp\Model\SysUser;
useApp\Service\Instance\JwtInstance;
useHyperf\Testing\Client;
usePHPUnit\Framework\TestCase;

/**
*ClassHttpTestCase.
*@methodget($uri,$data=[],$headers=[])
*@methodpost($uri,$data=[],$headers=[])
*@methodjson($uri,$data=[],$headers=[])
*@methodfile($uri,$data=[],$headers=[])
*/
abstractclassAdminTestCaseextendsTestCase
{
/**
*@varClient
*/
protected$client;

//token缓存key
protected$cacheKey='test_admin_token';

//token
protected$header=[];


publicfunction__construct($name=null,array$data=[],$dataName='')
{
parent::__construct($name,$data,$dataName);
$this->client=di(Client::class);
$this->login();
}

publicfunction__call($name,$arguments)
{
return$this->client->{$name}(...$arguments);
}

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

/**
*@paramarray$result
*@returnfalse|string
*/
publicfunctionpretty(array$result)
{
//表示成功
$this->assertSame(0,0);
echojson_encode($result,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE).PHP_EOL;
}
}

2、写一个test控制器继承AdminTestCase, 然后写测试用例

<?php
/**
*CreatedbyPhpStorm.
*User:phpstorm
*Date:2020/6/914:36
*Description:
*/


namespaceHyperfTest\Cases\Admin;


useApp\Service\SysUserService;
useHyperfTest\AdminTestCase;
useSwoole\Coroutine\Channel;
useHyperf\Utils\Context;

classSysUserControllerTestextendsAdminTestCase
{
//测试
publicfunctiontestGet()
{
//$this->assertTrue(true);

$res=$this->client->get('/');

//$this->assertSame(0,$res['code']);

$this->pretty($res);
}


/**
*后台用户列表
*执行命令:composertest----filtertestGetSysUserList--groupadminUser
*
*@groupadminUser
*/
publicfunctiontestGetSysUserList()
{
$params=[
'username'=>'',
'page'=>1,
'limit'=>20
];
$result=$this->get('/admin/sys/user/list',$params,$this->header);

$this->pretty($result);
}
}
  • 点击testGetSysUserList方法左边的绿色三角号:

    如何进行phpstorm hyperf单元测试配置

  • 或者可以在项目的跟目录下直接使用命令:
    composertest----filtertestGetSysUserList--groupadminUser
  • 执行结果:

    如何进行phpstorm hyperf单元测试配置

3、如果hyperf开启协程、phpunit就无法使用,需要使用hyperf框架自带的co-phpunit,所以需要修改phpstorm配置

第一步:打开phpstorm->settings->languages & Frameworks->PHP->CLI Interpreter

如何进行phpstorm hyperf单元测试配置

如何进行phpstorm hyperf单元测试配置

如何进行phpstorm hyperf单元测试配置

如何进行phpstorm hyperf单元测试配置配置完点击【OK】或者【Apply】

第二步:映射项目目录

如何进行phpstorm hyperf单元测试配置点击【OK】

第三步:配置 co-phpunit命令

打开phpstorm->settings->languages & Frameworks->PHP->Test Frameworks

如何进行phpstorm hyperf单元测试配置

如何进行phpstorm hyperf单元测试配置

如何进行phpstorm hyperf单元测试配置如图所示配置,点击【OK】或者 【Apply】保存

然后就可以愉快的hyperf 单元调试啦。

感谢各位的阅读!关于“如何进行phpstorm hyperf单元测试配置”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

发布于 2021-03-11 12:39:05
收藏
分享
海报
0 条评论
198
上一篇:cad模型中如何导入布局 下一篇:在internet上不属于个人隐私信息的是什么信息
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码