Я использую 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
?
Существует ли самый простой и естественный способдобиться этого насмешки?