Java 未能实例化[org.springframework.mobile.device.device]:指定的类是接口
addFreePostTest()方法测试失败。 我无法注入设备bean。 我如何解决这个问题Java 未能实例化[org.springframework.mobile.device.device]:指定的类是接口,java,spring,spring-boot,junit,Java,Spring,Spring Boot,Junit,addFreePostTest()方法测试失败。 我无法注入设备bean。 我如何解决这个问题 org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.mobile.device.Device]: Specified class is an interface BoardRestController.class @RestController @Reques
org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.mobile.device.Device]: Specified class is an interface
BoardRestController.class
@RestController
@RequestMapping("/api/board/free")
public class BoardRestController {
@PostMapping("")
public FreePostWriteResponse addFreePost(
@Valid @RequestBody FreePostForm form,
Device device) {
}
BoardRestControllerTests.class
@RunWith(SpringRunner.class)
@WebMvcTest(BoardRestController.class)
public class BoardRestControllerTests {
@Autowired
private MockMvc mvc;
@MockBean private BoardFreeService boardFreeService;
@Test
@WithMockUser
public void addFreePostTest() throws Exception {
FreePostForm form = FreePostForm.builder()
.subject("Subject.")
.content("Content.")
.categoryCode(JakdukConst.BOARD_CATEGORY_TYPE.FOOTBALL)
.build();
mvc.perform(post("/api/board/free")
.contentType(MediaType.APPLICATION_JSON)
.content(ObjectMapperUtils.writeValueAsString(form)))
.andExpect(status().isOk());
}
似乎有一个参数解析器没有在MockMvc配置中注册。@chrylis该解析器是DeviceWebArgumentResolver。那么如何将解析器注册到MockMvc呢?