gpt4 book ai didi

spring-mvc - Spring Boot @WebMvcTest 测试中避免@MockBeans 扩散

转载 作者:行者123 更新时间:2023-12-03 12:57:23 26 4
gpt4 key购买 nike

我有一个简单的 Controller ,例如

@Controller
public class FooController
{
@Autowired
private BarService barService;

@RequestMapping(value = "/foo", method = RequestMethod.GET)
public String displayFoo()
{
return "foo";
}
}

当我想做一个@WebMvcTest时,我必须创建大量的@MockBeans来防止NoSuchBeanDefinitionException

@RunWith(SpringRunner.class)
@WebMvcTest
@Import(WebSecurityConfig.class)
public class FooControllerTest
{
@MockBean ...
@MockBean ...
@MockBean ...
...
...
}

这是否意味着 BarService 以某种方式创建了一个依赖链? (它有一些依赖关系,但一些 @MockBean 看起来完全不相关)。

问题是,我为不同的 Controller 添加的每个 @WebMvcTest 也需要相同的 @MockBean

我是否应该使用像 @TestConfiguration 这样的注释来指定 DRY 主体的所有 @MockBean

最佳答案

我又看了一遍,发现你可以将 Controller 名称传递给 @WebMvcTest 例如@WebMvcTest(FooController.class)

Specifies the controllers to test. May be left blank if all {@code @Controller} beans should be added to the application context.

关于spring-mvc - Spring Boot @WebMvcTest 测试中避免@MockBeans 扩散,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49084504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com