gpt4 book ai didi

scala - 使用 ScalaJ-Http 时如何进行单元测试?

转载 作者:行者123 更新时间:2023-12-04 21:34:35 25 4
gpt4 key购买 nike

我希望使用 ScalaJ-Http 作为 http 客户端。链接:https://github.com/scalaj/scalaj-http

我将如何模拟 HttpHttpRequest在具有这样一行代码的类的单元测试中 val response: HttpResponse[String] = Http("http://foo.com/search").param("q","monkeys").asString ?

该类将从方法调用参数中获取 url 和 params。所以我不能注入(inject) HttpRequest .

最佳答案

我所做的是创建一个 ScalajHttp 包装类,如下所示:

import scalaj.http.{Http, HttpRequest}

/**
* This wraps the Scalaj Http object so it can be injected.
*/
class ScalajHttp {

def url(url: String): HttpRequest = Http(url)

}

然后您可以轻松地将其注入(inject)另一个类:
class Foo(http: ScalajHttp) {

def doBar() = {
val response = http.url("http://...").asString
}

}

然后对于模拟,您可以使用 Specs2 之类的东西并创建 ScalajHttp 的模拟。

关于scala - 使用 ScalaJ-Http 时如何进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41963568/

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