0

Scala コードの Specs の一部として Mockito を使用していますが、次のタスクに遭遇しました:
チェス盤 (8x8 = 64 セル) をエミュレートする ArrayBuffer が与えられた場合。ArrayBuffer存在しないセル (番号が 63 より大きいか 0 より小さい)をクエリすると、 が返されますNoneSome(0)それ以外の場合は、 (ほとんどすべての場合) or 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ですか?

その嘲笑を実現する最も簡単で自然な方法はありますか?

4

1 に答える 1

1

ここでの主な問題は、仕様が間違っていることです: は仕様でArrayBuffer期待どおりに動作しません。したがって、次のいずれかを行う必要があります。

  • 予想される動作を変更する
  • ArrayBuffer自家製の特性に変更
于 2011-08-23T14:08:45.517 に答える