【发布时间】:2019-12-01 00:52:54
【问题描述】:
我来自 Java 背景,我正在尝试使用 Scala 编写单元测试。
我的班级如下:
import com.softwaremill.sttp.{HttpURLConnectionBackend, Uri, sttp}
class MyClient(endpoint: String, principal: String) {
private implicit val serialization = org.json4s.native.Serialization
private implicit val backend = HttpURLConnectionBackend()
def getDataSet(id: String) : Option[DataSet] = {
//sttp.get(url).send <-- will use 'bakend'
}
}
这里使用隐式变量“backend”来插入 HTTP 客户端实现。
在 UnitTest 中,我应该插入 SttpBackendStub 。
implicit val testingBackend = SttpBackendStub.synchronous
.whenRequestMatches(_.uri.path.startsWith("/dataSet"))
.thenRespond(dataSetJson)
val client = new MyClient("http://dummy", "dummy")
但是当我启动 MyClient 实例时,它仍然会使用 HttpURLConnectionBackend 而不是 SttpBackendStub
是否有在测试期间将“testingBackend”引入 MyClient 的解决方法?
【问题讨论】: