Как решить код ошибки "405" при вызове API с тестированием? - PullRequest
0 голосов
/ 10 января 2019

Я получаю код ошибки «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);
}

Надеюсь, что кто-нибудь может помочь мне решить эту проблему.

Заранее спасибо!

1 Ответ

0 голосов
/ 10 января 2019

405 означает, что метод не разрешен. Это происходит потому, что вы выставляете операцию POST (@PostMapping(value = "/login", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE), но пытаетесь использовать с помощью GET: .when().get("/login")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...