Я сталкиваюсь с проблемой, когда высмеиваю вещи для теста junit.
Сценарий такой:
Класс A реализует интерфейс из стороннего jar-файла и должен реализовать method1.В дополнение к method1, A также содержит method2, который вызывается из method1.Сам метод method2 вызывает какую-то внешнюю службу.
Я хочу выполнить unit1 test method1.
method1 принимает ввод, скажем, X. X имеет входную переменную, заключенную в него, скажем, var1.var1 используется логикой в method1, а method1 устанавливает другую переменную, скажем, var2, в X.
Итак, я сначала смоделирую класс A, чтобы смоделировать метод2.
A a= Mockito.spy(new A());
doReturn("some dummy value").when(a).method2();
Затем я также должен смоделировать X для установки var1.
X x= mock(X.class);
when(x.getVariable("var1")).thenReturn("some dummy value for var1");
Наконец:
a.method1(x);
Внутри, метод1, который я делаю:
x.setVariable("var2","some value for var2").
Теперь в модульном тесте, когда я пытаюсь извлечь var2 из x, я получаю значение null.
x.getVariable("var2");
Я ожидаю "некоторого значения для var2", но вместо этого я получаю значение null.