|  | 4 lat temu | |
|---|---|---|
| .. | ||
| application | 4 lat temu | |
| conf | 4 lat temu | |
| script | 4 lat temu | |
| thinkphp | 4 lat temu | |
| .gitignore | 4 lat temu | |
| README.md | 4 lat temu | |
| mock.php | 4 lat temu | |
测试文件主要在 tests 文件下面,主要有以下几个文件夹
thinkphp5 的测试的主要流程是跟 thinkphp 的系统流程是相似的,大体的流程为:
引用 mock.php 文件加载框架
根据文件目录,添加测试文件
执行单元测试,输出结果
例如测试 thinkphp 里的 apc 缓存,将分为以下几个过程:
该文件应与 apc.php 目录路径 thinkphp/library/think/cache/driver 一致,命名空间与目录所在一致,并引用 PHPUnit_Framework_TestCase。
  <?php
  namespace tests\thinkphp\library\think\cache\driver;
  class apcTest extends \PHPUnit_Framework_TestCase
  {
      //设定基境
      public function setUp()
      {
      }
  }
编写测试文件
  use think\app;
  use think\cache;
  use think\config;
  if(!extension_loaded('apc')){
      $this->markTestSkipped('apc扩展不可用!');
  };
具体写法参照 PHPUnit 官方文档
  public function testGet()
  {
      App::run();
      $this->assertInstanceOf(
          '\think\cache\driver\Apc',
          Cache::connect(['type' => 'apc', 'expire' => 1])
      );
      $this->assertTrue(Cache::set('key', 'value'));
      $this->assertEquals('value', Cache::get('key'));
      $this->assertTrue(Cache::rm('key'));
      $this->assertFalse(Cache::get('key'));
      $this->assertTrue(Cache::clear('key'));
      Config::reset();
  }
在项目根目录执行
  $ phpunit
若想看到所有结果,请添加-v参数
  $ phpunit -v
单元测试的内容会跟框架同步,测试内容方方面面,是一个相对复杂的模块,同时也是一个值得重视的部分。希望大家能够多多提出意见,多多参与。如果你有任何问题或想法,可以随时提 issue,我们期待着收到听大家的质疑和讨论。
单元测试任务进度,请大家认领模块
| 模块 | 认领人 | 进度 | 
|---|---|---|
| Base | ||
| App | Haotong Lin | √ | 
| Build | 刘志淳 | |
| Config | Haotong Lin | √ | 
| Cache | ||
| Controller | Haotong Lin | √ | 
| Cookie | Haotong Lin | √ | 
| Db | ||
| Debug | 大漠 | √ | 
| Error | 大漠 | |
| Exception | Haotong Lin | √ | 
| Hook | 流年 | √ | 
| Input | Haotong Lin | √ | 
| Lang | 流年 | √ | 
| Loader | 流年 | |
| Log | ||
| Model | ||
| Response | 大漠 | √ | 
| Route | 流年 | |
| Session | 大漠 | √ | 
| Template | oldrind | |
| Url | 流年 | |
| View | mahuan |