How do I mock static function (Object function, no

2020-07-18 08:57发布

问题:

Object A {
  def a = { something}
}

// I've import A, but still have error message:  not found: type A
val x = mock[A]

回答1:

You may find this email thread instructive.

Whilst pure mocking of the object is not possible with any tool yet, the thread above does have a few options for you. All of which involve changing your design to some degree.



回答2:

You don't. Not only A is not a type or class -- it is an instance -- but it is an instance of a singleton (A.type).

What you do instead is put your methods on a trait, and make the object extend it. Then, you mock the trait instead of mocking the object.