我正在測試的功能之一是將sshing放入機器。我想嘲笑ping方法,實際上它試圖將ssh放入一臺機器中,因爲我並不是真正意識到一臺機器。Mockito並沒有嘲笑電話
類我測試:
public class TestMachine {
public int ping(host){
}
public boolean machineIsGood(host) {
blah blah
int val = ping(host);
blah blah blah
if(val != 0) return false;
return true;
}
}
測試類是這樣的:
的問題是,當我在本地運行它們,它們工作得很好,但我們autobuild系統,它似乎實際上是調用真正的ping並獲得認證異常。 我打算使用mock()而不是間諜(),因爲我讀過它有點奇怪,但我不明白是什麼改變了它實際上調用的方法!只是想知道是否有其他人有任何見解。
好了,所以我加了模擬,而不是間諜,而是通過自動構建,因爲我在ping方法得到的NPE現在還沒有運行它(它依賴於一些私人變量,因爲它被嘲弄,所以我不能設置它),這就是我原來爲什麼要窺探的原因。有沒有什麼辦法可以解決這個問題,而不需要大量的代碼重構,還是我唯一的路徑? – Th3sandm4n 2011-01-27 17:50:46