如何防止在Zend Framework 2 phpunit测试中加载模块

时间:2013-07-06 15:18:33

标签: php zend-framework phpunit zend-framework2

我用Auth模块编写了一个ZF2应用程序。此Auth模块的设置在其Module.php文件中完成。

我在Zend Framework 2单元测试教程(http://framework.zend.com/manual/2.2/en/tutorials/unittesting.html)中设置了一个测试,但是要使用Application模块进行测试。在测试的bootstrap.php中,我只在配置中包含了应用程序模块:

$config = array(
    'module_listener_options' => array(
        'module_paths' => $zf2ModulePaths,
    ),
    'modules' => array(
        'Application',
    )
);

在phpunit.xml中我只包含了这个测试目录:

<phpunit bootstrap="Bootstrap.php">
    <testsuites>
        <testsuite name="myApplication">
            <directory>./ApplicationTest</directory>
        </testsuite>
    </testsuites>
</phpunit>

我希望不会加载Auth模块,因此应该禁用它以进行测试。但是我得到了Auth模块中一个函数抛出的Exception,所以我认为它无论如何都会被加载。

我是否误解了引导,是否有办法防止该模块被加载?

1 个答案:

答案 0 :(得分:0)

可能它不是完美的解决方案,但以下工作:将方法setUp替换为

public function setUp()
{
    $config = include '/path/to/config/application.config.php';
    $config['modules'] = array('Application');

    $this->setApplicationConfig($config);

    parent::setUp();
}

阵列可以包含其他模块。