У меня есть следующий контроллер в Spring (2.0.5)
@RestController
public class FaqController {
@GetMapping("/faqs")
public void get(@RequestParam("language") final Locale locale) {
System.out.println(locale);
}
}
Когда я выполняю запрос GET через Postman / cURL, используя url: http://localhost:8080/faqs?language
, вызывается метод контроллера и locale
равно null
.
Когда я выполняю тот же URL с аннотированным тестом JUnit @MvcTest, который выглядит следующим образом:
@RunWith(SpringRunner.class)
@WebMvcTest
public class FaqControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void test() throws Exception {
this.mockMvc.perform(get("/faqs?language"));
}
}
, тогда метод не вызывается ,вместо этого org.springframework.web.bind.MissingServletRequestParameterException
выдается с сообщением: Обязательный параметр локали 'language' отсутствует .
Почему это различие?Я что-то упустил?