[英]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.