PHPackages                             wanren/tp32-phpunit-tool - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. wanren/tp32-phpunit-tool

ActiveLibrary[Testing &amp; Quality](/categories/testing)

wanren/tp32-phpunit-tool
========================

ThinkPHP3.2单元测试辅助工具

0131PHP

Since Jun 19Pushed 11mo agoCompare

[ Source](https://github.com/notinmood/TP32-PHPUnit-Tool)[ Packagist](https://packagist.org/packages/wanren/tp32-phpunit-tool)[ RSS](/packages/wanren-tp32-phpunit-tool/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (1)

说明
==

[](#说明)

- 帮助ThinkPHP3.2项目实施phpunit单元测试。
- 本项目复刻于 [snowair/think-phpunit](https://github.com/snowair/think-phpunit), 做了部分修改。
- 本项目提交到GitHub(注意不是Gitee)之后，会自动同步更新到packagist.org。

环境要求
====

[](#环境要求)

- 要求TP3.2项目中，根目录下有TP的入口文件index.php和项目管理文件composer.json。
- 要求TP3.2项目中，有子文件夹Application和ThinkPHP。
- 要求PHP版本大于等于7.4。
- 要求 PHPUnit 版本大于等于9.0。

安装和配置
=====

[](#安装和配置)

在项目根目录下, 打开`composer.json`，添加以下内容:

```
{
  "autoload": {
    "classmap": ["Application","ThinkPHP/Library"]
  },
  "require-dev": {
    "wanren/tp32-phpunit-tool": "dev-master"
  }
}
```

首次安装:

```
$ composer install

```

更新:

```
$ composer update

```

当你向项目中增加了新的class以后，需要重建autoload:

```
$ composer dump-autoload

```

使用
==

[](#使用)

安装好以后, 你就可以为项目中任何一个类创建单元测试类了:

### 创建单元测试类

[](#创建单元测试类)

think-phpunit的单元测试类遵循以下规则:

1. 所有的测试类都要在静态方法 `setUpBeforeClass` 或者实例方法 `setUp` 中创建出模拟app实例.
2. 如果测试的是控制器类，那么测试类要 `use \Think\Phpunit;`. 测试其他类不需要这条

测试文件组织比较自由，只要能保证phpunit能在执行时载入它即可. 我把测试文件放在了项目根目录下的 test 文件夹

对于TP项目而言, 最困难的地方在于控制器类的测试, think-phpunit 将一切简化到一行:

使用控制器测试类的 `execAction($action_name)` 执行控制器action, 它会返回action执行产生的所有输出供你做断言.

下面是一个简单的测试控制器方法输出的示例测试文件,其他类型的类就不做介绍了:

```
