写这个文章只是想帮自己理解:
测试的时候,注解到底怎么写
首先看你的junit版本
-
如果您使用的是 Junit 版本 < 5,
则必须使用 @RunWith(SpringRunner.class)或 @RunWith(MockitoJUnitRunner.class)等等。 -
如果您使用的是 Junit 版本 = 5,
那么您必须使用 @ExtendWith(SpringExtension.class)或 @ExtendWith(MockitoExtension.class)等等。
然后看是否启动spinrg
-
涉及Spring时 :
如果您想在测试中使用 Spring 测试框架功能,例如 @MockBean
那么你必须使用 @ExtendWith(SpringExtension.class) .它取代了已弃用的 JUnit4 @RunWith(SpringJUnit4ClassRunner.class) -
不涉及spring
例如当你只想使用@Mock/@InjectMocks注释,那么你要使用 @ExtendWith(MockitoExtension.class) ,因为它不会加载一堆不需要的 Spring 东西。它取代了已弃用的 JUnit4 @RunWith(MockitoJUnitRunner.class) .
有一个问题
我也不知道我的测试是不是涉及spring,咋办?
额,我想说,那你就用@RunWith(MockitoJUnitRunner.class) 吧。
参考资料
- https://www.coder.work/article/6576450
- https://www.coder.work/article/5549933