Одна из функций, которые я тестирую, - это вставка в машину.Я хочу смоделировать метод ping, который на самом деле пытается подключиться к компьютеру по ssh, поскольку я не подключаюсь к компьютеру.
Класс, который я тестирую:
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"));
}
{
Проблема в том, что когда я запускаю их локально, они работают просто отлично, но в нашей системе автоматической сборки кажется, что на самом деле она вызывает реальный пинг и получает исключение аутентификации,Я собираюсь использовать mock () вместо spy (), так как я прочитал, что это немного странно, но я просто не могу понять, что имеет значение в том, что он действительно вызывает метод!Просто интересно, есть ли у кого-нибудь еще понимание.