Я получаю код ошибки «405» при тестировании моих вызовов API в режиме запуска в IntelliJ. Однако, когда я тестирую API cal; с теми же параметрами в Почтальоне это работает.
Я программирую музыкальный автомат, где пользователь должен войти в систему, чтобы использовать его. Форма входа в систему работает, и когда я пытаюсь войти в систему с почтальоном, он также входит в систему успешно. Однако, когда я запускаю свой код на IntelliJ, он дает мне код ошибки «405», что означает «Метод не разрешен».
Мой код класса userController, который работает:
@PostMapping(value = "/login", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String login(@RequestBody MultiValueMap<String, String> body){
String email = body.getFirst("email");
String username = body.getFirst("username");
String password = body.getFirst("password");
return userService.loginUser(email, username, password);
}
Мой код функционального тестирования (также работает, потому что другие мои методы GET в моих тестах API работают):
открытый класс FunctionalTest {
@BeforeClass
public static void setup() {
String port = System.getProperty("server.port");
if (port == null) {
RestAssured.port = Integer.valueOf(8080);
}
else{
RestAssured.port = Integer.valueOf(port);
}
String basePath = System.getProperty("server.base");
if(basePath==null){
basePath = "/";
}
RestAssured.basePath = basePath;
String baseHost = System.getProperty("server.host");
if(baseHost==null){
baseHost = "http://localhost";
}
RestAssured.baseURI = baseHost;
}
}
И, наконец, мой код для тестирования метода POST для входа в систему:
//User control
@Test
public void checkLogin(){
given()
.param("email", "123")
.param("username", "123")
.param("password", "123")
.when()
.get("/login")
.then()
.statusCode(200);
}
Надеюсь, что кто-нибудь может помочь мне решить эту проблему.
Заранее спасибо!