java - Mockito - 创建一个模拟为 Spring Bean

标签 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>

我得到:

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/

相关文章:

java - Kafka Streams - 按时间戳/序列保存消息?

java - 自定义 Joda-Time Chronologies 是否有好的资源?

java - 使用BlockingQueue在Java中实现生产者-消费者似乎在消费后丢失数据

spring - @DomainEvents和@AfterDomainEventsPublication的示例

java - 使用 mockito 进行参数命名查询测试

java - 我如何实现通用 BST?

java - 读取和写入 xml 字符串的最简单且最简单的 java API 是什么?

java - 从使用Mockito模拟的restTemplate.exchange()中检索httpEntity对象

Spring:spring-data-mongodb 或 spring-boot-starter-data-mongodb

java - 验证 Mockito 中同一方法的后续调用的参数