我正在测试的功能之一是将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