Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

340
Visualizações
restAssured: no se puede dominar el método de publicación

compañeros stackoverflowianos :)

Estuve durante la hora de salida para hacer una llamada de publicación usando la API de Gmail. He estado tratando de usar createDraft y createLabel. Ahora creo que he encontrado cómo hacer esto correctamente (en su mayoría), pero aparece este error:

 java.lang.AssertionError: 1 expectation failed. Expected status code <200> but was <400>.

Me doy cuenta de que este error ocurre porque realizo una solicitud incorrecta.

¿Podrían ustedes, chicos, ayudarme con esto? Aquí está mi código:

 import io.restassured.RestAssured.* import io.restassured.http.ContentType import io.restassured.matcher.RestAssuredMatchers.* import org.hamcrest.Matchers.* import org.testng.annotations.Test class RestAPIAutoTestPost { @Test fun createLabelInGoogleMail() { RestAssured.baseURI = "https://www.googleapis.com/gmail/v1/users/me" val accessToken = "ya29.Glw7BEv6***" val jsonAsMap = HashMap<String, Any>() jsonAsMap.put("id", "labelAPITestNameID") jsonAsMap.put("labelListVisibility", "labelShow") jsonAsMap.put("messageListVisibility", "show") jsonAsMap.put("messagesTotal", "0") jsonAsMap.put("messagesUnread", "0") jsonAsMap.put("name", "labelAPITestName") jsonAsMap.put("threadsTotal", "0") jsonAsMap.put("threadsUnread", "0") jsonAsMap.put("type", "user") given(). contentType(ContentType.JSON). body(jsonAsMap). `when`() post("/labels?access_token=$accessToken"). then(). statusCode(200) } }

Supongo que uso HashMap incorrectamente o uso algunos campos de cuerpo incorrectos. Recién comencé a aprender RestAssured , así que pido perdón por la pregunta Newby.

¡Gracias!

PD Realmente agradecería cualquier ayuda con los métodos Post y poner datos en el cuerpo

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que su uso de RestAssured y HashMap es correcto. Creo que está obteniendo un 400 de esta API porque está especificando la propiedad de id . Al jugar con esto en el API Explorer de Google, pude generar 400 errores al hacerlo. De acuerdo con la documentación , las únicas cosas que necesita especificar para POST/Create son: labelListVisibility , messageListVisibility y name . La id se le devuelve como parte de la respuesta.

Una buena característica de RestAssured es que puede hacer que registre lo que envía o recibe cuando hay un error o todo el tiempo.

Registrar todas las solicitudes:

 given().log().all()

Registrar todas las respuestas:

 `when`().log().all()

O simplemente cuando fallan las validaciones:

 `when`().log().ifValidationFails()

Usar eso le dará una razón más precisa por la cual su interacción con la API está fallando porque mostrará todo lo que Google está enviando. Entonces podemos ver con certeza si tengo razón sobre la id .

Y dado que parece estar usando Kotlin para esto, es posible que desee aprovechar sus excelentes capacidades de cadenas multilínea y simplemente crear la carga JSON manualmente:

 val body = """ { "labelListVisibility": "labelShow", "messageListVisibility": "show", "name": "ThisIsATest" } """
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda