跳到主要内容

Generating Unit Test Template

src 文件夹中的每个类都应在 tests/unit 文件夹中有一个对应的单元测试。由于设置新的单元测试文件需要一些样板代码,我们创建了一个方便的工具来为您生成单元测试模板。

使用单元测试模板生成器

您可以通过在插件仓库的根目录中调用以下 Composer 脚本来创建单元测试模板:

composer generate-unit-test 'Fully\Qualified\Class\Name'

此命令需要一个必需参数:您要为其生成单元测试模板的类的完全限定类名。请注意,此完全限定类名应放在引号内,以确保命令行能正确处理反斜杠。

调用生成器的结果

调用生成器将在 tests/unit 目录中创建一个新的单元测试文件。该文件包含一个基本的单元测试。其设置方法会创建被测试类及其模拟依赖项的实例,并将它们都设置在单元测试类上,以便于即将实现的测试用例使用。

常见异常及解决方案

[ErrorException] file_put_contents(...php): failed to open stream: No such file or directory

生成器目前尚不支持在单元测试文件夹中创建目录。如果您在 src 文件夹的新目录中添加了类,请确保在单元测试文件夹中也创建了同名的目录。

[RuntimeException] 单元测试已存在于路径 "tests/unit/..."

这意味着指定路径已存在该类的单元测试。您可以将新的测试用例添加到错误消息中给出的路径对应的文件中。

[ReflectionException] Class YoastWPSEO... does not exist

请注意错误消息中的类名缺少反斜杠。

这很可能意味着完全限定类名没有放在引号内。请将类名放在引号内,以确保命令行能正确处理其中的反斜杠。

[ReflectionException] Class Yoast\WP\SEO... does not exist

这意味着找不到要为其生成单元测试的给定类。请确保您提供了完全限定类名,即类名前加上其命名空间。同时请确保您已在 src 文件夹中创建了您的类。