Mockito不同范围的期望

时间:2011-08-23 13:18:56

标签: scala mockito specs

我在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的超出范围的单元格呢?

有没有最简单自然的方法来实现这种嘲弄?

1 个答案:

答案 0 :(得分:1)

这里的主要问题是规范是错误的:ArrayBuffer无法在规范中按预期工作。因此,您必须:

  • 更改预期行为
  • 更改自制特质的ArrayBuffer