对于php开发者来说,做单元测试并不是很方便,这也是大部分phper不愿意写单元测试的原因。但是单元测试对提高程序的质量来说,有实在是太重要的了。 有关这一点,我也是在学习java,体验过单元测试的魅力之后才切身体会到的。 那么现在我们就以herosphp为栗子,一起来看看php的单元测试环境如何配置。

首先,毫无疑问,php的单元测试肯定是要依赖phpunit这个工具了。那么我们要先 安装phpunit. 这个比较简单。

wget https://phar.phpunit.de/phpunit.phar #下载phpunit
mv phpunit.phar /usr/local/bin/phpunit #移动到环境路径,方便使用phpunit 命令

使用 phpunit -version 去查看phpunit的版本

配置phpstorm

打开菜单Languages & Frameworks > PHP 配置php的版本,在php开发环境中选择你当前使用的php版本,如果你配置了php的 环境变量的话,一般都可以自动检测出来的。我本机编译的php7.0.8

打开菜单Languages & Frameworks > PHP > PHPUnit, 配置phpunit的phar文件的路径,也就是我们刚刚设置的/usr/local/bin/phpunit, 还需要配置应用程序的phpunit入口文件,在这里你只需要把www/app/phpunit.php配置进去就好了。

如下图所示:

编写单元测试

配置好环境之后我们就可以开始编写单元测试了。所有单元测试的类都需要继承 PHPUnit_Framework_TestCase 这个基类。 下面请看栗子(/demo/tests/UserServiceTest.php):

namespace demo\tests;
use herosphp\bean\Beans;
class UserServiceTest extends \PHPUnit_Framework_TestCase
{
    protected $service;

    public function setUp()
    {
        parent::setUp(); // TODO: Change the
        autogenerated stub
            $this ->service =
            Beans::get("demo.user.service");
    }

    /**
     * @test
     */
    public function register() {
        $this->service->register();
    }

}

只要在方法的注释中加上@test注解,这个方法就是一个单元测试的方法了。 关于phpunit的使用文档请参考 https://phpunit.de/manual/current/zh_cn/index.html

执行单元测试

  1. 执行所有方法,点击菜单 Run -> Run UserServiceTest ...
  2. 执行指定的方法,在对应的方法上点击右键,在弹出的右键菜单中选择"Run UserServiceTest.方法名称"
Copyright © HerosPHP 2016 all right reserved,powered by Gitbook最后更新时间: 2019-03-05 12:54:38

results matching ""

    No results matching ""