zoukankan      html  css  js  c++  java
  • PHP单元测试使用

    php与其他语言不太一样,单元测试需要自己安装和配置,相对麻烦一点,不过单元测试对于提高库的稳定性和健壮性还是非常给力的,下面教大家怎么配置PHP单元测试

    注意:php需升级到7.1版本以上

    配置说明

    1.全局安装phpunit命令脚本

    $ wget https://phar.phpunit.de/phpunit-7.0.phar
    $ chmod +x phpunit-7.0.phar
    $ sudo mv phpunit-7.0.phar /usr/local/bin/phpunit
    $ phpunit --version
    PHPUnit x.y.z by Sebastian Bergmann and contributors.

    2.全局安装安装phpunit代码

    composer global require phpunit/phpunit

    3.创建 phpunit.xml放在你的项目根目录, 这个文件是 phpunit 会默认读取的一个配置文件:

    <phpunit bootstrap="vendor/autoload.php">
        <testsuites>
            <testsuite name="service">
                <directory>tests</directory>
            </testsuite>
        </testsuites>
    </phpunit>

    4.配置phpstorm单元phpunit.phar路径,Languages & Frameworks > PHP > PHPUinit

    如我的phpunit本地的路径为/usr/local/bin/phpunit

    5.配置单元测试类提示,Languages & Frameworks > PHP > include path

    如我的phpunit包本地的路径为/Users/chenqionghe/.composer/vendor/phpunit

    6.单元测试编写

    1.Class为Demo的测试类为DemoTest

    2.测试类继承于 PHPUnitFrameworkTestCase

    3.测试方法

    • 必须为public权限,
    • 一般以test开头,也可以给其加注释@test来标识
    • 在测试方法内,类似于 assertEquals() 这样的断言方法用来对实际值与预期值的匹配做出断言。
    <?php
    use EoffcnUtilsArrays;
    use PHPUnitFrameworkTestCase;
    /**
     * Array测试用例
     * Class ArraysTest
     */
    class ArraysTest extends TestCase
    {
        public function testGet()
        {
            $array = [
                1 => [
                    'b' => [
                        'c' => 'cqh'
                    ]
                ],
                2 => [
                    'b' => [
                        'c' => 'cqh'
                    ] ]
            ];
            $this->assertEquals('cqh', Arrays::get($array, '1.b.c'));
        }
    }
    

    执行单元测试   

    1.执行单个文件单元测试

    Phpstorm方式,当前测试类右键Run即可

    命令行的方式,进行项目目录执行

    phpunit tests/ArraysTest.php
    

      

    2.执行全局单元测试

    phpstorm方式

     

    命令行方式,命令行下进入当前项目执行

    phpunit

  • 相关阅读:
    uC/OS-II时间(OS_time)块
    uC/OS-II任务(OS_task)块
    uC/OS-II信号(OS_sem)块
    uC/OS-II队列(OS_q)块
    uC/OS-II互斥信号(OS_mutex)块
    uC/OS-II内存(OS_mem)块
    elasticsearch-installation
    rabbitmq的安装
    str_翻转字符串
    str_2.判断两个字符串是否互为旋转词
  • 原文地址:https://www.cnblogs.com/chenqionghe/p/8984157.html
Copyright © 2011-2022 走看看