我不确定这个问题是否适合这个问题,因为它比理论代码样本更具理论性,但无论如何我都会问。
因此,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。我跳过包含和内容以保持简单)。
更有趣的问题:如果是,那么它是如何实现的?
答案 0 :(得分:2)
是的,它会起作用,PHPUnit将模拟你的对象。这个模拟对象将动态扩展您想要模拟的基础对象。