我正在遵循 http://codeception.com/docs/07-AdvancedUsage#Dependency-Injection 的示例

目前我在我的 Cest 中有这个:

/**
 * @var Helper\MyHelper
 */
protected $myHelper;

protected function _inject(\Helper\MyHelper $myHelper)
{
    $this->myHelper = $myHelper;
}

并产生以下错误:
Failed to inject dependencies in instance of 'HomeCest'. Failed to create instance of 'Helper\MyHelper'. Failed to create instance of 'Codeception\Lib\ModuleContainer'. Parameter 'config' must have default value.
这是我的 helper :
<?php
namespace Helper;

class MyHelper extends \Codeception\Module
{
    public function login($email, $password = '')
    {
        $I = $this->getModule('PhpBrowser');

        $I->fillField('email', $email);
        $I->fillField('password', $password);
        $I->click('Ok!');
    }
}

我的目标是,如果我能做到这一点,那就是创建一个 BaseCest,我可以在其中注入(inject)所有帮助程序、页面对象和步骤对象。

帮助程序已正确加载到 acceptance.suite.yml 中。

最佳答案

该错误出现在以前版本的 Codeception 中:
https://github.com/Codeception/Codeception/issues/2230

2.1.2 的 Codeception 版本不应该有这个错误。

关于php - 无法从文档中复制 Codeception 依赖注入(inject)示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31687299/

10-12 03:00