【问题标题】:Integration tests with PHPUnit and Apache使用 PHPUnit 和 Apache 进行集成测试
【发布时间】:2013-12-21 04:37:40
【问题描述】:

除了使用 PHPUnit 进行单元测试之外,我还想做集成测试,其中我的 php 测试被加载,就像一个 php 页面将具有可用于测试的所有 Apache 上下文(以及被测试的方法)。

在 JUnit 和 Spring 中,我将通过使用 AbstractJUnit4SpringContextTests 类来加载应用程序上下文并使其可用于测试。我在PHPUnit documentation 中没有看到类似的概念。

如果您不能(或不想)模拟测试 PHP 代码所需的一切,有没有办法通过 Apache 运行 PHPUnit 测试?

作为一个具体的例子,我想测试一个调用 X 个现有方法的方法,其中许多方法使用 _SERVER 数组或其他特定于请求的变量,如果没有大量工作我无法模拟。

【问题讨论】:

    标签: php apache unit-testing phpunit integration-testing


    【解决方案1】:

    我从来没有尝试过,但它应该可以工作:

    public function testSomeMethod()
    {
        $_SERVER['some-var'] = 'some value';
    
        $x = $this->obj->getSomething();
        $this->assertEquals('expected', $x);
    }
    

    您还可以备份 $_SERVER 变量并在以后恢复它。

    【讨论】:

    • 对,但这实际上是在模拟 _SERVER 变量。我正在开发一个在 _SERVER 中有很多值的应用程序,我希望它们设置为 Apache 运行时的值,而不是我模拟它们的值。如果我只是单元测试,模拟就可以了,我想要集成测试。
    猜你喜欢
    • 2014-10-10
    • 2011-10-10
    • 2016-06-04
    • 2014-12-25
    • 2015-08-25
    • 2015-03-03
    • 2010-10-19
    • 2014-03-18
    • 2019-02-28
    相关资源
    最近更新 更多