PHPUnit:测试配置文件配置

时间:2015-08-04 02:05:11

标签: php unit-testing phpunit

我的项目很大程度上依赖于配置文件配置。我希望能够测试几种不同的配置,但这变成了一个巨大的问题。现在,对于每个测试,我将标准配置文件移动到临时文件,将测试配置文件复制到正确的位置,运行测试,然后移回临时文件。所有这些文件系统工作都开始产生问题并且难以维护。

这是我现在的一个示例测试

class MysqlExceptionTest extends TestCase
{
    /**
     * 
     */
    public static function tearDownAfterClass()
    {
        copy(getcwd() . '/tests/files/config.php', getcwd() . '/config.php');

        unlink(getcwd() . '/temp.php');
    }

    /**
     * Wrong config info
     * @expectedException Exception
     */
    public function test_wrong_config_info_throws_exception()
    {
        rename(getcwd() . '/config.php', getcwd() . '/temp.php');

        copy(getcwd() . '/tests/files/wrong_config.php', getcwd() . '/config.php');

        $mysql = new MysqlDatabase(new ConsoleOutput(), false);

        $handle = $mysql->getHandle();
    }
}

我有几十个像这样的测试,这意味着我必须维护太多不同的配置文件。此外,特拉维斯CI似乎不喜欢这样,给我带来了比我认为应该更多的麻烦。我调查了嘲笑,但无法找到一种模拟文件/类并将各种输出提供给其他类的好方法。有更好的方法吗?

0 个答案:

没有答案