作为一名有Java背景的开发者,我正在处理php代码库,并且想为我的代码添加单元测试。
我有一个服务类,其包含以下DAO类:
class ServiceClass {
private $daoClass;
public function methodToTest(){}
}
我没有提供构造函数,也没有添加daoClass
属性的setter方法。这是因为它将使用PHP-DI IoC容器进行注入。
对于单元测试,我使用phpunit
,因此我模拟了daoClass
对象,并使用反射直接注入该属性(因为该属性没有构造函数或setter)。
在Java中,我们可以很容易地使用@InjectMocks
注释或MockitoAnnotations.initMocks
方法来完成这项工作。
我无法找到在phpunit
中执行类似操作的方式。
另外,一个不同但相关的问题是,在我的测试中是否有任何方法可以创建一个私有属性并用某些标记注释它,然后自动将其转换为模拟对象实例?就像Java中的mockito一样,它使用@Mock
注释。