Mockito отличается диапазоном ожиданий - PullRequest
0 голосов
/ 23 августа 2011

Я использую Mockito как часть Specs в Scala-коде, и я наткнулся на следующую задачу:
Учитывая ArrayBuffer, который имитирует шахматную доску (8x8 = 64 ячейки).Если мы запрашиваем ArrayBuffer для ячейки, которая не существует (имеет номер больше 63 или меньше 0), мы должны получить None.В противном случае мы возвращаем Some(0) (почти во всех случаях) или Some(1) (только в нескольких указанных ячейках).

Сейчас я думаю о шпионах и о чем-то, что начинается как:

val spiedArray = spy(new ArrayBuffer[Int])
  for (x <- 1 to 8; y <- 1 to 8) {
    doReturn(Some(0)).when(spiedArray).apply(x * y-1)
  }

А затем явно переопределите ячейки с помощью Some (1).
Но как насчет внешних ячеек, которые должны возвращать None?

Существует ли самый простой и естественный способдобиться этого насмешки?

1 Ответ

1 голос
/ 23 августа 2011

Основная проблема заключается в том, что спецификация неверна: ArrayBuffer не может работать так, как ожидается в спецификации.Таким образом, вы должны либо:

  • изменить ожидаемое поведение
  • изменить ArrayBuffer для самодельной черты
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...