Mockito - 创建一个模拟为Spring Bean

时间:2016-12-09 08:23:52

标签: java spring mockito

我有一个简单的用例,我需要通过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)'

有什么建议吗?

1 个答案:

答案 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>