Mockito不同范围的期望



我在scala代码中使用Mockito作为spec的一部分,我偶然发现了以下任务:
给定一个模拟棋盘的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的超出边界的单元格呢?

是否有一种最简单和自然的方式来实现这种嘲弄?

这里的主要问题是规范是错误的:ArrayBuffer不能像规范中预期的那样工作。因此,您必须:

  • 改变预期行为
  • 为自制性状更改ArrayBuffer

相关内容

  • 没有找到相关文章

最新更新