同时模拟界面和特征

时间:2012-10-15 08:11:26

标签: php phpunit

是否可以在PHPUnit模拟构建器中构建这样的对象(同时实现接口和使用特征)?

<?php

class FooClassThatD implements BarInterface
{
    use BazTrait;
}

1 个答案:

答案 0 :(得分:4)

我不认为使用本机模拟对象方法是可行的,因为它们使用特定模板来模拟具有不允许任何扩展点的特征的类。您可以使用特定于测试的类轻松地绕过它,从中构建模拟。

abstract class BarWithBazTraitTestClass implements BarInterface
{
    use BazTrait;
}

为此类创建一个模拟,就像创建任何其他抽象类一样。

$mock = $this->getMockForAbstractClass('BarWithBazTraitTestClass');