我使用Mockito作爲規格的一部分在scala代碼中,我偶然發現了以下任務:
給定一個模擬棋盤(8x8 = 64單元格)的ArrayBuffer。如果我們查詢ArrayBuffer
不存在的單元格(數目大於63或小於0),我們應該收到None
。否則,我們返回Some(0)
(幾乎所有情況下)或Some(1)
(僅在幾個指定的單元格中)。Mockito不同範圍的期望
現在我考慮過這個問題開始像間諜和東西:
val spiedArray = spy(new ArrayBuffer[Int])
for (x <- 1 to 8; y <- 1 to 8) {
doReturn(Some(0)).when(spiedArray).apply(x * y-1)
}
然後明確respecify一些細胞(1)。
但是應該返回None
的出界單元怎麼樣?
是否有一種最簡單和最自然的方式來實現這種嘲諷?
我覺得你應該去從0到7,而不是1〜8)...否則我在這裏不真的看到嘲笑和填充ArrayBuffer的好處嗎? ...如果你創建了一個接口,可能會更有意義 –