Yii2中如何使用CodeCeption

 

前言:php

Yii2是一款很是優秀的php框架,Yii2的官方發行版整合了Codeception測試框架。在使用Yii2框架的項目中,咱們能夠很是方便地利用Codeception進行單元測試、功能測試和驗收測試。如今咱們就利用Codeception在Yii2下實現簡單的單元測試。html

 

在進行單元測試前,須要作一些準備工做。git

 

1. 首先確保你的機器安裝了Composer,不然請自行安裝,這是安裝教程github

 

2. 打開命令行,並切換目錄到項目根目錄,分別運行以下命令。bootstrap

Cmmand代碼   收藏代碼
composer require "fxp/composer-asset-plugin:*"  
  
composer require "codeception/codeception=*"  
  
composer require "codeception/specify=*"  
  
composer require "codeception/verify=*"  

  

3.首先建立測試文件,在tests目錄下面運行以下命令segmentfault

..\vendor\bin\codecept generate:test unit \models\ExampleValidation  

結果以下php框架

 ExampleValidationTest.php源碼以下yii2

<?php  
namespace tests\codeception\unit\models;  
  
use Yii;  
use app\models\DepartmentModel;  
use yii\codeception\TestCase;  
  
class ExampleTest extends TestCase  
{  
    use \Codeception\Specify;  
      
    private $_dept;  
  
    /** 
     * @var \UnitTester 
     */  
    protected $tester;  
  
    protected function _before()  
    {  
        $this->_dept = new DepartmentModel();  
    }  
  
    protected function _after()  
    {  
    }  
  
    public function testValidation()  
    {  
        $this->specify('Department validation fail', function() {  
  
            /* 給dept_name賦一個重複的值,而後assertFalse */  
            $this->_dept->dept_name = 'Biology';  
            $this->assertFalse($this->_dept->validate());  
        });  
  
        $this->specify('Department validation pass', function() {  
  
            /* 給dept_name賦一個還沒有重複的值,而後assertTrue */  
             $this->_dept->dept_name = 'Math';  
             $this->assertTrue($this->_dept->validate());  
         });  
    }  
  
}  

  

 

<?php

namespace common\tests\unit\models;

class CollectionTest extends \Codeception\Test\Unit
{
    protected $tester;


    protected function _before()
    {

    }

    protected function _after()
    {

    }

    public function testCollection1()
    {
        $this->assertTrue(2 == 2);
    }

    public function testCollection2()
    {
        $this->assertTrue(1 > 2);
    }

}

  

而後在命令行測試結果以下app

指定到類composer

D:\Project\PHP\yii2\common>..\vendor\bin\codecept run unit \models\CollectionTest

 

指定到方法

D:\Project\PHP\yii2\common>..\vendor\bin\codecept run unit \models\CollectionTest:testCollection1

 

顯示有一個錯誤

 

注,_bootstrap.php 文件記得引入Yii的自動加載

<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', __DIR__ . '/../../');

require_once(__DIR__ . '/../../vendor/autoload.php');
require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../config/bootstrap.php');

  

 

參考:

Yii2框架下,使用Codeception進行單元測試:http://tangl163.iteye.com/blog/2288538

Yii2中如何使用CodeCeption:http://hustnaive.github.io/php/2015/06/16/work-with-yii-and-codeception.html

codeception (3)在yii2下建立Unit Tests (單元測試):https://segmentfault.com/a/1190000005926883

https://www.cnblogs.com/zergling9999/p/6052766.html

相關文章
相關標籤/搜索