PhpStorm 2021.3 Help

生成 PHP 测试

您可以根据要测试的 PHP 类自动生成测试类存根。PhpStorm 为PHPUnitCodeceptionPHPSpec测试框架提供了这种能力。如果您使用Behat框架,则必须手动创建测试。

测试类是一个PHP 类,其名称源自生产类名称。例如,如果要测试的类是MyClass.php,PhpStorm 会自动将相应的PHPUnit测试类的名称组成为<MyClass>Test.php

PhpStorm 可以为单独文件中定义的类以及单个 PHP 文件中定义的类生成测试。在后一种情况下,PhpStorm 将为每个生成的测试类创建一个单独的文件。

创建测试后,您可以在测试及其主题之间快速导航。

添加新测试

  1. 执行以下任一操作:

    • 在要测试的 PHP 类的编辑器中,将插入符号放置在类定义处。然后,按下并从弹出菜单中Alt+Enter选择Create New PHP Test 。这样,您可以为在单个 PHP 文件中的多个类中定义的 PHP 类生成测试。

      要为某个方法创建测试,请将插入符号放置在方法声明中。所选方法将在Create New PHP Test对话框的方法列表中自动选择。

    • 从主菜单中,选择文件 | 新 | PHP 测试 | <测试框架> 测试

    • Project工具窗口中,按Alt+Insert或右键单击要测试的 PHP 类并选择New | PHP 测试 | <测试框架>从选择上下文菜单中测试。

    创建新的PHP 测试对话框打开:

    创建新的 php 测试 phpunit 对话框
  2. Create New PHP Test对话框中,指定以下内容:

    1. 生成测试类的测试文件模板。PhpStorm 提供了内置文件模板,用于使用以下支持的测试框架生成测试类:PHPUnitCodeceptionPHPSpec

    2. 测试类的名称。PhpStorm 根据所选测试框架的命名约定自动从生产类名称中组合名称。例如,如果要测试的类是MyClass.php,PhpStorm 将自动将PHPUnit测试类的名称组成为<MyClass>Test.php

    3. 测试类的文件夹,根据生产类的包含目录和命名空间,配置的测试源根目录及其psr-4 包前缀,或者对应测试框架的配置文件中提供的值,自动推荐。要使用路径补全,请按下Ctrl+Space并从列表中选择路径。

    4. 测试类将属于的命名空间。PhpStorm 可以根据配置的PSR 包前缀和框架特定配置文件中指定的值自动完成命名空间。要使用命名空间补全,请按下并从列表中选择相关的命名空间。Ctrl+Space

    5. 选中要为其生成测试方法存根的生产类方法旁边的复选框。要包括从父类继承的方法,请选中显示继承的方法复选框。

      PhpStorm 将自动将测试方法的名称组合为test<production method>. 您可以在文件和代码模板设置页面的代码选项卡上自定义用于生成测试方法存根的代码模板。

在测试及其测试对象之间导航

  1. 在编辑器中打开一个测试类或测试主题类。

  2. 从编辑器上下文菜单中,选择Go To | 测试主题或按Ctrl+Shift+T

    如果这个类只有一个测试,IDE 会立即将您导航到它。否则,系统将提示您从弹出窗口中选择必要的测试或创建新测试

    从测试对象导航到测试

在 PHP 上下文中,当使用PHPUnitCodeception测试时,您可以使用@covers注解来维护测试类或方法与其测试主题之间的链接。

这样,即使它们的名称不遵循PHPUnit 命名约定,也可以在测试和测试主题之间导航:

class Person { public function getAge() {} } /** @covers Person */ class TestForPersonClass extends TestCase { /** @covers Person::getAge */ public function testCorrectAgeIsReturned() {} }
最后修改时间:2021 年 3 月 8 日