具有泛型的 Scala 存根 class

Scala stub class with generics

我正在尝试存根一个案例class,它的结构类似于下面的代码。

case class Employee[T](name:T) {
  def greet(str:String):String = {
    "Hi, "+ str + ":" + name
  }

  def farewell(str:String):String = {
    "Bye, "+ str + ":" + name
  }
}

但是,当创建这样的存根时: val emp = stub[Employee[String]], 出现以下错误:

type mismatch;
 found   : T
 required: String
  val emp = stub[Employee[String]]

我怎样才能 Stub 这个 class。

Stubbing cases 类 通常是可以避免的,但假设你使用的是 ScalaMock,请尝试先用一些默认值扩展它,例如

class StrEmployee extends Employee[String](null)
val emp = stub[StrEmployee]
(emp.greet _).when("aa").returns("bb")
assert(emp.greet("aa") == "bb")