我正在尝试将使用 Mockito 和 ScalaTest 创建的模拟对象注入到使用 match 语句的 Scala 程序中。该程序在生产中运行良好,但是当我注入我的模拟对象来测试它时,我得到:
scala.MatchError: (Mock for FileSource, hashCode: 707784476,null) (of class scala.Tuple2)
导致错误的行是:
inputSources.foldLeft((inputSources.head, None): (FileSource, Option[ServerBackedFile]))
((opt: (FileSource, Option[ServerBackedFile]), src: FileSource) => opt._2 match {...
并且模拟对象是这样创建的:
val mockSource0 = mock[FileSource]
when(mockSource0.getNextFile).thenReturn(None)
我正在模拟的类 FileSource 定义为:
trait FileSource {
def getNextFile: Option[ServerBackedFile]
def deleteRemoteFile(sbFile: ServerBackedFile): Unit
def disconnect: Unit
def a: String
def host: String
def b: Boolean