理解 @Mock、@MockBean 和 Mockito.mock() 之间的区别
在开发测试和模拟依赖项时,必须了解三种常用方法之间的区别:@MockBean、@Mock 和 Mockito.mock()。
Mockito 与 Spring Boot @MockBean
Mockito(经典/普通):
import org.mockito.Mock;<br>...<br>@Mock<br>MyService myservice;<br> pre><p><pre class="brush:php;toolbar:false">导入 org.mockito.Mockito;<br>...<br>MyService myservice = Mockito.mock(MyService.class);<br>
Mockito 使用注解并提供直接模拟类或接口的方法。
Spring Boot @MockBean:
import org.springframework。 boot.test.mock.mockito.MockBean;<br>...<br>@MockBean<br>MyService myservice;<br>
Spring Boot的@MockBean是专门使用的注解
区别:
何时使用:
Mockito.mock() 与 @Mock @MockBean
@Mock(来自 Mockito)和 @MockBean(来自 Spring Boot)都用于模拟,但有一些微妙的地方差异:
功能上,它们都达到相同的结果,因此决定使用哪一个取决于具体的测试需求。
实际用法
没有 Spring 上下文的单元测试:
@Mock<br>MyService myservice;<br>
使用 Spring 上下文和 Bean 重写进行单元测试:
@MockBean<br>MyService myservice;<br>
向 Spring WebMvc 测试添加 Mock:
@WebMvcTest(FooController.class)<br>@MockBean<br>FooService fooServiceMock;<br>
以上是以下是文章的一些标题选项,强调问题格式: 短而有力: * @Mock、@MockBean 或 Mockito.mock():哪种模拟策略适合您? * Spring启动测试的详细内容。更多信息请关注PHP中文网其他相关文章!