【问题标题】:Mockito different range expectationsMockito 不同的范围期望
【发布时间】:2011-08-23 13:18:55
【问题描述】:

我在 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 的越界单元格呢?

有没有一种最简单自然的方法来实现这种模拟?

【问题讨论】:

  • 我认为你应该从 0 到 7 而不是 1 到 8 ;) ...否则我真的看不到模拟与在这里填充 ArrayBuffer 的好处? ...如果您在其上创建一个界面,可能会更有意义

标签: scala mockito specs


【解决方案1】:

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

  • 更改预期行为
  • ArrayBuffer 更改为自制特征

【讨论】:

  • 是的,嘲笑的概念被误解了。
猜你喜欢
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多