私がテストしている機能の 1 つは、マシンへの sshing です。私は実際にマシンにsshしていないので、実際にマシンにsshしようとするpingメソッドをモックしたいと思います。
私がテストしているクラス:
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;
}
}
テストクラスは次のようになります。
public class TestClass {
public void setUp() {
TestMachine tester = spy(new TestMachine());
}
public void testOne() {
when(test.ping(anyString()).thenReturn(-1);
assertFalse(tester.machineIsGood("testHost"));
}
{
問題は、それらをローカルで実行しているときは問題なく動作することですが、自動構築システムでは、実際に実際の ping を呼び出して認証例外を取得しているように見えます。私は spy() の代わりに mock() を使用しますが、それは少し変だと読んだことがありますが、実際にメソッドを呼び出しているという点で何が違いを生むのか理解できません! 他の誰かが何か洞察を持っているかどうか疑問に思っています。