PHPUnit Mocks vs PHP参数约束

时间:2015-08-19 08:18:37

标签: php mocking phpunit

我不确定这个问题是否适合这个问题,因为它比理论代码样本更具理论性,但无论如何我都会问。

因此,PHP在某些时候在函数定义中引入了类型约束(当然除了基本类型),即

class A {
   public $value;
}

function foo($someInt, A $a) {...}

让我想知道的是,如果可以在这种情况下使用PHPUnit模拟:

class functionTest extends PHPUnit_Framework_TestCase {
    public function testFoo() {
       $mockA = $this->getMockBuilder('A')->getMock();

       $this->assertEquals('some result', foo(1, $mockA));
    }
}

当测试运行时,是否会接受此类调用(ofc。我跳过包含和内容以保持简单)。

更有趣的问题:如果是,那么它是如何实现的?

1 个答案:

答案 0 :(得分:2)

是的,它会起作用,PHPUnit将模拟你的对象。这个模拟对象将动态扩展您想要模拟的基础对象。