我使用mockito测试复制库,在测试中我模拟dao。但是,这个库的构造方式是扫描所有可用的dao,因此我得到了多个bean(mocked one和not mocked one)。
我正在创造一个像这样的豆子间谍:
@Bean
@Primary
@Autowired
public DAOBean daoBean (DAOBean dao){
return Mockito.spy(dao);
}
我想知道是否有可能把我的模仿豆,而不是现有的一个,而不只是创建一个新的
pom.xml文件:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>2.0.2-beta</version>
<scope>test</scope>
</dependency>
3条答案
按热度按时间velaa5lx1#
如果您想确保原始bean不是在测试期间创建的,您可以
例如,使用Spring配置文件运行测试
test
使用@ActiveProfiles("test")
注解原始bean@Profile("!test")
kupeojn62#
你应该使用
@MockBean
在测试课上。MockBean
注解位于spring-boot-test
maven神器。你需要加上
spring-boot-starter-test
或者spring-boot-test
给你的pom.xml
为了使用MockBean
.参考:mockbean
jdg4fx2g3#
我不确定你为什么要在构造器中模仿你的dao。
通常情况下,情况正好相反-您可以通过提供dao作为实际对象的参数来示例化实际对象的间谍
spy()
-方法。