У меня есть функция, которая вызывает метод из другого класса. Этот класс и метод были протестированы и используют реальные данные, что делает мой тест несовместимым с ожидаемыми значениями, которые я жестко запрограммировал.
public class MyClass{
public void functionToBeTested(String params){
//stuff to do
Caller call = new Caller();
callResult = call.post(someJSON);
//do stuff with callResult
}
}
Вот джунит:
public class TestMyClass{
MyClass testClass = new MyClass();
Caller mock;
@Before
public void setup(){
premadeAnswer = new String(file);
mock = Mockito.mock(Caller.class);
Mockito.when(mock.post(Mockito.any())).thenReturn(premadeAnswer);
}
@Test
public void studentFees_CorrectSSN(){
assertEquals(expected.getThing(), testClass.functionToBeTested("PARAMS").getThing());
}
}
Я был почти уверен, что все сделал правильно, но очевидно, что это не издевательство, и вместо этого он вызывает функцию и ведет себя так, как ожидалось, если не было джунит. Если бы мне пришлось догадываться о том, что происходит, было бы то, что, хотя я создаю смоделированный объект и использую когда / thenReturn, он не присоединен к объекту MyClass testClass.