我在scala代码中使用Mockito作为Specs的一部分,我偶然发现了以下任务:
给定一个模拟棋盘的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
呢?
有没有一种最简单自然的方法来实现这种模拟?