模拟Scala对象的成员

模拟Scala对象的成员,scala,mocking,scalatest,Scala,Mocking,Scalatest,我正在使用scalatest,在我的测试文件中,我不导入此包,我只导入: package com.project.dir object A { var m = scala.collection.mutable.Map[String, String]() } class AB { val a = "hello" def function_A(): Unit = { import A._ // Code that uses member m of A } }

我正在使用scalatest,在我的测试文件中,我不导入此包,我只导入:

package com.project.dir

object A {
  var m = scala.collection.mutable.Map[String, String]()
}

class AB {
  val a = "hello" 
  def function_A(): Unit =  {
    import A._
    // Code that uses member m of A
  }
}

object AB {
  val ab = new AB
  ab.function_A()
}
这允许我访问AB类的成员a和函数a,但我希望能够模拟对象a中的var m

我尝试过:

val m = mock[com.project.dir.AB]
但这会返回以下错误:

val m = mock[com.project.dir.A]

在另一个文件中,我导入com.project.dir.A,我可以调用A.m

我认为scalatest mock不能模拟对象。也许你应该试试Mockito。@user1077071你在用什么样的模拟框架?@GabrielePetronella我在用Scalatest和FunSuite,MockitoSugar,以及之前和之后可能的复制
type A is not a member of package com.project.dir.A