我已经成功地使用 Specs2 来测试对文件的序列化,但测试使用的是真实文件(写入 /tmp/)。我宁愿不只是为了测试而触摸磁盘。有没有办法使用模拟文件?
def serializeAndDeserializeFromDatafile[X <: CaseClass : Manifest](old: X, maybeGrater: Option[AvroGrater[X]] = None): X = {
val g = maybeGrater.getOrElse(grater[X])
//val outfile = mock[File]
val outfile = new File("/tmp/file1.avro")
g.serializeToDataFile(outfile, old) //Serialize to file
val infile = outfile
g.asObjectFromDataFile(infile) //Deserialize from file
}
我尝试使用 Mockito 来模拟我outfile
的(上面注释掉的行)。在我天真的尝试中,我可以创建Mock for File, hashCode: 1583021903
,但似乎是null
在我尝试序列化时。
我想我错过了某种“存根”,但我找不到任何足够相似的例子来提出解决方案。任何帮助,将不胜感激。