PHPUnit mock与PHP参数约束

PHPUnit mock与PHP参数约束,php,mocking,phpunit,Php,Mocking,Phpunit,我不确定它是否适合这样的问题,因为它是理论性的,而不是具体的代码示例,但我还是会问 因此,PHP在函数定义中引入了类型约束(当然基本类型除外),即 我想知道的是,PHPUnit Mock是否可以用于这种情况: class functionTest extends PHPUnit_Framework_TestCase { public function testFoo() { $mockA = $this->getMockBuilder('A')->getMock

我不确定它是否适合这样的问题,因为它是理论性的,而不是具体的代码示例,但我还是会问

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

我想知道的是,PHPUnit Mock是否可以用于这种情况:

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

       $this->assertEquals('some result', foo(1, $mockA));
    }
}
当测试运行时,这样的调用会被接受吗(ofc.I跳过了include和其他东西以保持简单)


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

是的,它将工作,PHPUnit将模拟您的对象。此模拟对象将动态扩展要模拟的基础对象

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

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