[英]Spring Boot Unit testing for Mock beans vs Mockito
我使用的是Spring Boot 1.5.4项目,需要在测试包上进行说明。
我看到Spring Boot附带了@MockBean
,它是org.springframework.boot.test.mock.mockito
软件包的一部分。
我的问题是-它类似于Mockito的外部依赖关系,我可以避免将Mockito用作外部依赖项,例如spring boot模拟。*软件包具有Mockito的所有功能?
正如Greg的回答中所指出的那样, spring-boot-starter-test
已经包含了Mockito核心,因此它已经存在于您的项目中,不需要任何外部依赖。
话虽这么说@MockBean
的@Mock
和Spring的@MockBean
有点不同,因为@MockBean
基本上是@Mock
加上@Bean
因此它也执行了@Bean
注释,并且也像bean一样工作, @Bean
实例放置在Spring的应用程序上下文和所有其他与Spring Bean相关的概念也都出现在图中。
从文档 -
可用于将模拟添加到Spring ApplicationContext的注释。 可用作类级别的注释或用作@Configuration类或@RunWith SpringRunner的测试类中的字段。
可以通过类型或bean名称来注册模拟。 在上下文中定义的任何现有的相同类型的单个Bean将由模拟代替,如果未定义现有的Bean,则将添加一个新的。
当在字段上使用@MockBean以及在应用程序上下文中注册@MockBean时,该模拟也将注入到字段中。
对于没有DI和上下文的非Spring应用程序,应使用@Mock
;对于Spring应用程序,应使用@MockBean
。
如果查看spring-boot-starter-test的依赖项 ,您会发现它依赖于Mockito库,因此它已包含在您的库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.