在ThinkPHP中进行单元测试,可以遵循以下步骤:
composer require --dev phpunit/phpunit
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
<testsuites>
<testsuite name="Application Test Suite">
<directory suffix="Test.php">./application/tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix="Controller.php">./application/controller</directory>
<directory suffix="Model.php">./application/model</directory>
</whitelist>
</filter>
</phpunit>
这个配置文件指定了测试用例所在的目录(./application/tests),以及需要进行代码覆盖率检查的目录(./application/controller 和 ./application/model)。
<?php
namespace app\tests\controller;
use think\Test;
use app\controller\ExampleController;
class ExampleControllerTest extends Test
{
public function testIndex()
{
$exampleController = new ExampleController();
$response = $exampleController->index();
$this->assertStringContainsString('Welcome to ThinkPHP', $response);
}
}
这个测试用例会实例化ExampleController,并调用其index方法,然后检查返回的响应是否包含"Welcome to ThinkPHP"字符串。
vendor/bin/phpunit
PHPUnit会自动查找并运行符合命名规范的测试类和方法,并输出测试结果。
vendor/bin/phpunit --html=report.html
这将在项目根目录下生成一个名为report.html的测试报告文件。
通过以上步骤,可以在ThinkPHP项目中进行单元测试,确保代码的质量和稳定性。