我有一个简单的用例,其中我需要通过 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>
我得到:
No matching factory method founnd: factory method 'mock(String, String, int)'
有什么建议吗?
最佳答案
我认为你混合了一些担忧。
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>
关于java - Mockito - 创建一个模拟为 Spring Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41056031/