PHP单元测试使用

发表于:2018-9-28 10:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:雪山飞猪    来源:51testing采编

  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.测试类继承于 PHPUnit\Framework\TestCase
  3.测试方法
  必须为public权限,
  一般以test开头,也可以给其加注释@test来标识
  在测试方法内,类似于 assertEquals() 这样的断言方法用来对实际值与预期值的匹配做出断言。
  <?php
  use Eoffcn\Utils\Arrays;
  use PHPUnit\Framework\TestCase;
  /**
  * 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
   
   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号