知识卡片
切片测试只加载被测层其余用Mock屏蔽
内容
@WebMvcTest、@DataJpaTest这类”切片测试”注解的设计思路是:既然一次性加载整个应用上下文(@SpringBootTest)会让测试变慢、又混入了大量与当前关注点无关的组件,不如按技术层切一刀——只启动与该层相关的自动配置(比如@WebMvcTest只启用MVC相关配置),同时用@MockBean把这一层依赖的下层组件替换成[[测试替身的四种类型与作用]]中的Mock,从而既保留了框架特性(如参数绑定、校验)的真实验证,又避免了整条依赖链都要真实跑起来。发散:这是”集成测试”和”单元测试”之间的一种折中形态——只集成”必须集成才能验证的那一层”,其余全部隔离,兼顾了真实性和执行效率。
参考来源
《Spring Boot应用开发实战》第6章《自动化测试》