然后无法解决重载方法

问题描述

我是Scala的新手。我正在处理以下代码,其中一个API端点正在文件(SomeJsonData.toString())中缓存值,而另一个端点正在从该文件(Json.parse())中检索。使用when-thenReturn编写测试时,会得到重载的方法错误。

我要去哪里错了?

缓存文件内容:

{"time":92345845,"value":[{"name":"Jack","hobby":"paint"}]

CacheController.scala

def retrieveCache = {
    File(filePath).createFile()
    val source = Source.fromFile(filePath)
    val content = try source.mkString
    .....       
}

CacheControllerTest.scala

it("test") {
    val mockSuggestions = "[{\"name\":\"Jack\",\"hobby\":\"paint\"}]"
    val jsonData =Json.obj("time" -> DateTime.now(),"value" -> mockSuggestions)

    when(Source.fromFile(anyString())).thenReturn(jsonData.toString())
    // error: cannot resolve overloaded method thenReturn
}

解决方法

Source.fromFile返回一个BufferedSource,因此您必须将其传递给thenReturn中的一个,而不是字符串。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...