PHPUnit 与 Yii2 [基础教程]

作者:CoderLiu 发布于:2016-11-21 浏览:1104次 收藏

如果想使用原生的PHPUnit在Yii2框架下你有很多事情需要做,可以直白的说Yii2 codeception写的的确很好,但是他的这种方式与习惯了XUnit原生写的方式的确有些难以接受,提高了学习的成本.至少对于我来说是这样的.

因此直接使用PHPUnit来说这的确是一个很好的方式.


首先推荐你局部安装,这样在写代码的时候也有提示,进入项目目录并执行:

composer require phpunit/phpunit 5.6.*


创建一个测试目录test


在test目录下创建bootstrap.php文件

<?php
define('YII_ENV', 'test');
defined('YII_DEBUG') or define('YII_DEBUG', true);
require_once(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
require __DIR__ .'/../vendor/autoload.php';
$config = require '../config/web.php';
(new yii\web\Application($config));


执行命令的时候需要指定bootstrap参数

phpunit --bootstrap test/bootstarp.php

这样你就可以使用测试用例了 

在测试用例中需要注意的是命名空间还是需要指定的

<?php
/**
 * Created by PhpStorm.
 * User: xin
 * Date: 16/11/21
 * Time: 上午10:37
 */
use PHPUnit\Framework\TestCase;
use app\models\Order;
class MyTest extends TestCase{
    protected $order;
    public function setUp()
    {
        parent::setUp(); // TODO: Change the autogenerated stub
        $this->order = Order::find()->asArray()->one();
    }
    public function testOrder(){
        $this->assertEquals(20, count($this->order));
    }
}

测试用例可以正常运行了....


LiuZeXin:test xin$ phpunit --bootstrap ./_bootstrap.php MyTest.php 
PHPUnit 5.6.2 by Sebastian Bergmann and contributors.
.                                                                   1 / 1 (100%)int(20)
Time: 941 ms, Memory: 32.50MB
OK (1 test, 1 assertion)

希望大家在开发测试当中多多实践单元测试,这样虽然增加了我们开发的时间,但是付出和回报永远成正比。一个真正的程序员不仅仅会写代码,他应该熟知设计单元测试用例并修改自己的代码通过单元测试.

如果文章对您有所帮助,希望继续支持我们,您的支持是我们最大的动力 ¥打赏
标签: yii2 PHPUnit
声明:文章内容由作者原创或整理,未经允许,不得转载!
您需要登录后才可以评论。登录 | 立即注册