макет функции с функцией обратного вызова в качестве параметра - PullRequest
0 голосов
/ 18 апреля 2011

Моя структура кода выглядит следующим образом:

class A {
  def a(x: () => Unit) { do something}
}

class B {
  .... 
  def foo() {
    def x() { something }
    a(x)
  }
}

Теперь я хочу сделать юнит-тест класса B с макетом A.

val a = mock[A]
def x () { ... }
a.a(x) atLeastOnce

Выше не работает.Поскольку этот новый x не является x внутри foo ().Но x внутри foo является локальным, недоступным для unittest.Любое предложение, кроме как убрать x из foo?

1 Ответ

0 голосов
/ 29 апреля 2011

Вы должны смоделировать функциональный литерал, переданный в A.a. Пожалуйста, посмотрите ответ на следующий вопрос SOF и посмотрите, поможет ли это

Как смоделировать метод с функциональными аргументами в Scala?

...