gpt4 book ai didi

scala - 在请求中使用自定义 header 的集成测试 Play Framework

转载 作者:行者123 更新时间:2023-11-28 20:14:39 25 4
gpt4 key购买 nike

我想为我们的项目编写测试。如果 Accept header 和 Accept-Language 以及其他一些内容发生变化,服务器必须响应其他内容。我们在启动时使用协作工具,所以我想针对 url:port 运行测试而不是模拟它。如果它可行(或至少像下面的示例),我希望它在完整的 http 堆栈上通过。

我的主要问题是:如何编写可以完全参数化请求并可以针对网络服务器发送的测试。

我写了一个像这样的工作测试:

"returns valid json" in new WithBrowser {
browser.goTo("http://" + AppConf.getString(AppConf.MOBILE_CLIENT_URL) + ":" + AppConf.getString(AppConf.MOBILE_CLIENT_PORT) + "/version")
Json.parse(browser.pageSource)
browser.pageSource must contain("\"communicationVersion\"")
browser.pageSource must contain("4")

}

感谢任何帮助。

最佳答案

解决方法:

从 PlaySpecification 而不是 Specification 扩展,导入 play.api.libs.ws.WS 并像这样尝试:

"returns valid json" in new WithServer {
val f = WS.url(mobileUrl + "/version").withHeaders(("Accept", api.acceptedAcceptHeader)).get()
val r = await(f)
r.json
r.body must contain("\"communicationVersion\"")
r.body must contain("4")
}

其他问题可能会出现,比如运行非并行测试,但问题的答案是这样的。

关于scala - 在请求中使用自定义 header 的集成测试 Play Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32187729/

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