克隆了PHPUnit对象

时间:2017-06-07 08:32:06

标签: phpunit php-7.1

我们正在努力开发PHP,将我们的应用程序放在两个范围内:减少版本中的回归和错误。 该应用程序应用了一个MVC模式但没有开源框架:我们实际上使用的是一个来自symfony的大量组件的专有组件(目标是将来某个时候将所有组件移植到symfony)。

应用程序存在一些设计缺陷,因此不适合单元测试。无论如何,我们有一个可以开始的地方,这里有一些我无法解决的策略行为。

我们所有的业务方法都依赖于创建时由Dependency注入传递的路由器对象。 路由器公开了一些方法来获取和设置在路由器本身内克隆的变量,如_SERVER,_GET,_POST(设计中禁止使用全局变量)。

在下面的测试中,我在测试类实例化之前设置了SERVER和GET ..所以我希望在测试期间正确找到它们的值。 相反,他们完全是空的,当然,测试失败。

我做错了什么的任何线索?

感谢。

/**
  * Test external class with valid UUID
  * 
  */
public function testGetClassPermissionExternal() {
    $TEST_SERVER_DATA = array(
        'REQUEST_URI' => 'https://sviluppo.pardgroup.com/test',
        'SERVER_PORT' => 443,
        'SERVER_NAME' => 'sviluppo.pardgroup.com'
    );
    // Due to bad design superglobal $_SERVER need to be fullfilled.
    $_SERVER = $TEST_SERVER_DATA;
    $this->router->setSERVER($TEST_SERVER_DATA);

    $TEST_POST_DATA = array('uuid' => self::$UUID);
    $this->router->setGET($TEST_POST_DATA);

    $this->class = \permission::getInstace($this->router);

    $test_class = array("permissionTest/external");
    $this->assertFalse($this->invokeMethod($this->class, "getClassPermission", $test_class));
}

0 个答案:

没有答案