gpt4 book ai didi

java - 如何使用mockito模拟不同jar中的方法

转载 作者:行者123 更新时间:2023-12-01 16:58:52 24 4
gpt4 key购买 nike

在我的项目中,我使用来自不同项目的一些外部 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 FinalExternalClass 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)

最佳答案

看起来您错过了类路径中的 poi-.jar。请添加它,错误应该得到解决:

如果您使用 maven,请将其添加到您的 pom.xml

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version><your version></version>
</dependency>

关于java - 如何使用mockito模拟不同jar中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com