ScalaMock: Можно ли издеваться над чертой с помощью перегруженного метода, ожидающего параметра функции карри?

#scala #unit-testing #mocking #scalamock

Вопрос:

Мое приложение использует Scala 2.13 и ScalaMock 5.1. Можно ли издеваться над bar методом в такой черте, как эта?

 trait Foo {
  def bar(f: Double): Double
  def bar(i: Int)(f: => Double): Double
}
 

Следующая попытка не компилируется. Ошибка компилятора заключается в следующем: _ must follow method; cannot follow Double

 val mockFoo = mock[Foo]
(mockFoo.bar(_: Int)(_: Double) _).expects(1, 1.0).returns(2.0)
 

Эта попытка также не компилируется. Ошибка компилятора заключается в следующем: type mismatch; found: () => Double, required: Double

 val mockFoo = mock[Foo]
(mockFoo.bar(_: Int)(_: () => Double) _).expects(1, 1.0).returns(2.0)
 

Эта попытка не компилируется. Он возвращает ту же ошибку, что и при предыдущей попытке.

 val mockFoo = mock[Foo]
(mockFoo.bar(_: Int)(_: () => Double)).expects(1, 1.0).returns(2.0)
 

И эта попытка также не удается скомпилировать. На этот раз ошибка заключается в Unable to resolve overloaded method bar

 val mockFoo = mock[Foo]
(mockFoo.bar(_: Int)(_: Double)).expects(1, 1.0).returns(2.0)