代码之家  ›  专栏  ›  技术社区  ›  Toma Tomov

yii2为什么phpsterm不能自动完成单元测试方法

  •  0
  • Toma Tomov  · 技术社区  · 6 年前

    我的测试如下:

    <?php
    
    namespace backend\tests\unit;
    
    use backend\modules\crm\models\CrmClient;
    
    class ClientTest extends \Codeception\Test\Unit
    {
        /**
         * @var \frontend\tests\UnitTester
         */
        protected $tester;
    
        public function testClientFields()
        {
            $client = new CrmClient();
    
            $client->setCompany('12345');
            $this->assertTrue($client->validate(['company']));
        }
    }
    

    但通过打字 $this-> 不显示方法列表,例如 assertTrue, assertFalse 这是正常的吗?我能让他们看一下吗?谢谢您!

    1 回复  |  直到 6 年前
        1
  •  2
  •   Pistej    6 年前

    您需要调用codeception build命令,例如。 ./vendor/bin/codecept build 为所有套件生成基类。这将生成文件夹中包含文档的助手函数 /tests/_support/_generated/ (基本测试文件夹结构)。

    第二种解决方案: 通过 UnitTester 变量转换为函数,然后使用它而不是 $this 如:

    public function testClientFields(UnitTester $I)
    {
        $client = new CrmClient();
    
        $client->setCompany('12345');
        $I->assertTrue($client->validate(['company']));
    }