PHPUnit 的使用

2023-01-14 10:23:16 浏览数 (1)

安装

PHP Archive (PHAR)

代码语言:javascript复制
wget -O phpunit https://phar.phpunit.de/phpunit-9.phar
chmod  x phpunit
root@php-fpm:/var/www/html# ./phpunit --version
PHPUnit 9.5.27 by Sebastian Bergmann and contributors.

或者,Composer

代码语言:javascript复制
composer require --dev phpunit/phpunit ^9
root@php-fpm:/var/www/laravel-demo# ./vendor/bin/phpunit --version
PHPUnit 9.5.24 #StandWithUkraine

配置文件

如果 phpunit.xmlphpunit.xml.dist(按此顺序)存在于当前工作目录并且未使用 --configuration,将自动从此文件中读取配置。

执行测试

执行全部测试

代码语言:javascript复制
phpunit

执行某个测试

代码语言:javascript复制
    /**
     * @group home
     */
    public function testHome()
    {
        dump(123);
        $this->assertTrue(true);
    }

//直接用方法名
root@php-fpm:/var/www/laravel-demo# phpunit --filter testHome

//指定组名
root@php-fpm:/var/www/laravel-demo# phpunit --group home

--filter 'TestNamespace\TestCaseClass::testMethod'
--filter 'TestNamespace\TestCaseClass'
--filter TestNamespace
--filter TestCaseClase
--filter testMethod

api 测试

如果只是断言两个变量,就太没意思了,下面看下api测试

代码语言:javascript复制
$response = $this->get('/api/user/1/config');
        $response->dump();
        $response->assertStatus(200);

        $keys = [
            'aa'     => 'integer',
            'bb'      => 'string',
            'cc'          => 'string',
            'dd'        => 'string',
            'ee' => 'string',
        ];
        $data = optional(json_decode($response->getContent()))->data;
        $this->seeObjectContainsJson($keys, $data->j[0]);

注意,上面的get用法是laravel特有的

参考

https://phpunit.de/getting-started/phpunit-9.html

https://phpunit.readthedocs.io/zh_CN/latest/index.html

0 人点赞