首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以模拟HttpResponse的ScalaMock

难以模拟HttpResponse的ScalaMock
EN

Stack Overflow用户
提问于 2020-04-21 05:09:01
回答 1查看 228关注 0票数 0

我正在尝试运行以下测试:

代码语言:javascript
复制
import AV_Enums.TimeSeriesFunctions
import org.scalamock.scalatest.MockFactory
import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.must.Matchers.{be, _}
import scalaj.http.HttpResponse

import scala.io.Source

class ResponseParserTest extends AnyFunSuite with MockFactory {


  test("Parsing from a valid response returns a Right") {
    val mockResponse = Source.fromResource("MockResponse.json").mkString

    val mockResponse = mock[HttpResponse[String]]
    (mockResponse.body _).expects().returning(mockResponse)

    ResponseParser.convertTimeSeries(TimeSeriesFunctions.TIME_SERIES_INTRADAY, mockResponse) must be('right)
  }
}

然而,我得到了下面的构建错误,我不能理解原因是什么:

代码语言:javascript
复制
type mismatch;
 found   : T
 required: String
    val mockResponse = mock[HttpResponse[String]]
 _ must follow method; cannot follow mockResponse.body.type
    (mockResponse.body _).expects().returning(mockResponse)

我确信我在ScalaMock的用法上遗漏了一些东西,但我找不到它是什么。

EN

回答 1

Stack Overflow用户

发布于 2020-04-21 17:59:23

这是ScalaMock中的一个已知错误。尝试下面的变通方法,看看这是否能让你继续下去-它在模拟子类之前锁定了类型参数。

代码语言:javascript
复制
test("Parsing from a valid response returns a Right") {
  val mockResponse = Source.fromResource("MockResponse.json").mkString
  class StringHttpResponse extends HttpResponse[String]("", 0, Map.empty())
  val mockResponse = mock[StringHttpResponse]
  (mockResponse.body _).expects().returning(mockResponse)

  ResponseParser.convertTimeSeries(TimeSeriesFunctions.TIME_SERIES_INTRADAY, mockResponse) must be('right)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61332094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档