В моем проекте я использую какой-то внешний jar из другого проекта. Функция, которую я хочу протестировать, вызывает функцию из этого внешнего jar.
class MyClass {
public String myfunc(String db, String schema, String table){
return AnotherClass.getValue(db, schema, table);
}
}
class AnotherClass {
public static String getValue(String db, String schema, String table){
ExternalClass ec = New ExternalClass();
return ec.getValue(db, schema, table);
}
}
Тест
private static final ExternalClass ec = Mockito.mock(ExternalClass.class);
@Before
public void setupTests() throws ClassificationException {
Mockito.when(ec.getValue("db", "schema", "table")).thenReturn("dummyValue");
}
@Test
public void testEncryptStringColumn() {
MyClass m = New MyClass();
String out = m.myfunc("db", "schema", "table");
}
Проблема в том, что я запускаю код. он выдает исключение, что один из классов ExternalClass, который используется, не найден.
Ошибка В строке появляется сообщение об ошибке private static final ExternalClass ec = Mockito.mock(ExternalClass.class);
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.powermock.api.mockito.repackaged.cglib.core.ReflectUtils.addAllMethods(ReflectUtils.java:350)