Я пытаюсь протестировать мой код (проект Spring-Boot) RestController, но я всегда получаю 404. Вот что у меня есть:
@RestController("/service")
public class ServiceInteractionController {
@Autowired
private PairingService pairingService;
@GetMapping("/registered/{sensorId}")
public ResponseEntity isSensorRegistered(@PathVariable String sensorId) {
return ResponseEntity.ok(pairingService.isSensorRegistered(sensorId));
}
}
@RunWith(SpringRunner.class)
@WebMvcTest(ServiceInteractionController.class)
public class ServiceInteractionControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private PairingService pairingService;
@Before
public void setUp() {
Mockito.when(pairingService.isSensorRegistered(TestConstants.TEST_SENSOR_ID))
.thenReturn(true);
}
@Test
public void testIsSensorRegistered() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("service/registered/{sensorId}", TestConstants.TEST_SENSOR_ID))
.andExpect(MockMvcResultMatchers.status().isOk());
}
}
Результат всегда выглядит так:
MockHttpServletRequest:
HTTP Method = GET
Request URI = service/registered/test123Id
Parameters = {}
Headers = []
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = null
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 404
Error message = null
Headers = []
Content type = null
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
java.lang.AssertionError: Status
Expected :200
Actual :404
Что я делаю не так?Я уже пытался инициализировать mockmvc непосредственно в методе setUp с помощью standaloneSetup (), и я также использовал @SpringBootTest в сочетании с @ AutoConfigureMockMvc.
У кого-нибудь есть полезные советы?Я использую пружинную загрузку 2.1.4.
Спасибо!