繁体   English   中英

将合法的 Spring bean 注入模拟 bean

[英]Have legit Spring beans injected into a mock bean

任何人都知道如何将正常的 spring bean 注入我的 MVC controller 中?

@WebMvcTest(TaskController.class) class TasksManagerApplicationTests {
@Spy // WRONG
private TasksRepository taskDao;
@MockBean
private AssignmentService service;
@MockBean
private ToDoClient client;
@Autowired
private MockMvc template;
...

NoSuchBeanDefinitionException:没有“com.acme.tskmngt.dao.TasksRepository”类型的合格 bean

我不想在这里模拟每个依赖项,这似乎需要做很多工作,只有外部耦合。 注意:TasksRepository 是 Spring 数据 JPA JpaRepository; 已经尝试添加@DataJpaTest 并失败(配置错误:找到@BootstrapWith 的多个声明)。

谢谢你的帮助

感谢 Joao Dias 的评论,这是一个(确实更重的)工作代码:

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
@Slf4j class TasksManagerApplicationTests {
@Mock
private TaskController controller;

@MockBean
private AssignmentService service;
@MockBean
private ToDoClient client;
@Autowired
private MockMvc template;

@LocalServerPort
private int serverport;         // random web server port
@Autowired
private ObjectMapper mapper;    // Jackson serializer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM