gpt4 book ai didi

java - restAssured - 无法掌握post方法

转载 作者:行者123 更新时间:2023-11-30 06:45:51 24 4
gpt4 key购买 nike

stackoverflowians:)

我已经停止使用 Gmail API 进行 Post 调用了。一直在尝试使用createDraft和createLabel。现在我想我已经找到了如何正确执行此操作(大部分),但我收到此错误:

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

我意识到发生此错误是因为我提出了错误的请求。

各位,你们能帮我解决这个问题吗?这是我的代码:

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)
}

}

我想我错误地使用了 HashMap 或者使用了一些不正确的主体字段。我才刚刚开始学习restAssured,所以请原谅我的新手问题。

谢谢!

附注我非常感谢您对 Post 方法以及将数据放入body

方面的帮助

最佳答案

我认为您对 RestAssured 和 HashMap 的使用是正确的。我认为您从这个 API 中得到了 400,因为您指定了 id 属性。通过在 Google 的 API Explorer 中进行测试,我能够生成 400 个错误。根据the documentation ,您需要为 POST/Create 指定的唯一内容是:labelListVisibilitymessageListVisibilitynameid 作为响应的一部分返回给您。

RestAssured 的一个很好的功能是,您可以让它在出现错误时或始终记录其发送或接收的内容。

记录所有请求:

given().log().all()

记录所有回复:

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

或者当验证失败时:

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

使用它可以让您更准确地了解与 API 交互失败的原因,因为它会显示 Google 发回的所有内容。这样我们就可以确定我对 id 的判断是否正确。

由于您似乎正在使用 Kotlin 来实现此目的,因此您可能希望利用其强大的多行字符串功能并手动创建 JSON 有效负载:

val body = """
{
"labelListVisibility": "labelShow",
"messageListVisibility": "show",
"name": "ThisIsATest"
}
"""

关于java - restAssured - 无法掌握post方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43699258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com