Было бы очень полезно, если бы вы также предоставили свои неработающие модульные тесты. С другой стороны, я почти уверен, что проблемы все равно нет :)
Ваша проблема не в том, что Mockito и PowerMockito не работают. Настоящая проблема заключается в зависимости ваших классов. Или, чтобы быть более конкретным, c способ, которым ваши классы обрабатывают эту зависимость.
В общем, создание экземпляра зависимости (Class2
) в том месте, где это необходимо (ClassOne
), не является хорошей идеей. . Как видите, это усложняет тестирование. Было бы лучше передать зависимость в класс, который в ней нуждается. Это называется Внедрение зависимостей (DI).
В вашем примере вы должны передать объект Class2
в конструктор ClassOne
. Код будет выглядеть примерно так:
public class ClassOne {
private final Class2 class2;
public ClassOne(Class2 class2) {
this.class2 = class2;
}
...
private void function2(List, String, String){
String value = class2.method1(string, string);
}
}
Как видите, вы просто передаете экземпляр своей зависимости и используете его вместо того, чтобы создавать его самостоятельно.
В вашем модуле Протестируйте: теперь вы можете передать имитацию Class2
в свой Class1
объект, который затем будет использоваться.