Springboot+Junit5微服务单元测试编写实践
现在写单元测试的重要性不言而喻,下边说明一下Junit5测试的会用到的主要注解和方法。PS:常用开发工具都可以自动生成Junit测试类。
单元测试命名
可参考【翻译】7种流行的单元测试命名约定
在项目种我选择的是should...when的写法,但需注意方法命名时不要过长,过长反而导致难于阅读和理解
2. 常用注解
-
类注解
- @SpringbootTest 加在类上,会启动整个环境;做集成测试;由于controller层逻辑少,一般用在controller层;比较慢
- @ExtendWith(SpringExtension.class) Junit5中用来替代Junit4的@RunWith(SpringJUnit4ClassRunner.class),会启动Spring的上下文
- @ContextConfiguration 指定加载ApplicationContext的配置文件或配置类,一般和@ExtendWith(SpringExtension.class)结合使用
- @ExtendWith(MockitoExtension.class) Junit5中用来替代JUnit4 @RunWith(MockitoJUnitRunner.class)。不需要Spring上下文时用该注解
-
模拟类或接口的注解
- @Mock、@InjectM