我有一个简单的用例,我需要通过spring创建一个模拟对象。 (我知道有更好的选择,如@Mock
)。
我需要模拟的类ClassToMock
是这样的:
public classToMock {
public ClassToMock (String a, String b, int c)
...
}
//other methods omitted
}
在我的Spring Bean中,我有:
<bean id="xyz" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="some val"/>
<constructor-arg value="some other val"/>
<constructor-arg type="int" value="2"/>
</bean>
我得到了:
没有匹配的工厂方法founnd:工厂方法'mock(String,String,int)'
有什么建议吗?
答案 0 :(得分:1)
我认为你混淆了一些问题。
factory-method
属性是指一个静态方法,它返回您要创建的实例。
此外,要么实例化org.mockito.Mockito
实例,要么实例化ClassToMock
实例。您不能使用一个(ClassToMock
类)的参数构造函数将它们与构造函数或另一个(Mockito
类)一起使用。
此外,Mockito,单独不能模拟构造函数。为什么你需要模拟构造函数?
如果您想为测试创建一个具有预定义值的类实例,可以在xml spring conf中声明它:
<bean id="xyz" class="ClassToMock" >
<constructor-arg index="0" value="some val"/>
<constructor-arg index="1" value="some other val"/>
<constructor-arg index="2" value="2"/>
</bean>