【发布时间】:2019-03-01 10:09:49
【问题描述】:
使用 mockito-core-2.24.jar 和 junit 会出现以下异常
这是纯 Java 代码,我收到了:
org.mockito.exceptions.base.MockitoException: Mockito 不能模拟这个 类:类 javax.servlet.jsp.PageContext。
Mockito 只能模拟非私有和非最终类。
Java : 1.8
JVM vendor name : Oracle Corporation
JVM vendor version : 25.202-b08
JVM name : Java HotSpot(TM) 64-Bit Server VM
JVM version : 1.8.0_202-b08
JVM info : mixed mode
OS name : Windows 10
OS version : 10.0
异常堆栈跟踪:
Underlying exception : java.lang.IllegalArgumentException: Could not create type
at com.ups.webappcommon.cclamp.cclamptag.Wems_GetContentTagTest.setUp(Wems_GetContentTagTest.java:22)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:35)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:62)
at org.mockito.Mockito.mock(Mockito.java:1896)
at org.mockito.Mockito.mock(Mockito.java:1805)
... 14 more
Caused by: java.lang.NoClassDefFoundError: javax/el/ELContext
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at net.bytebuddy.description.method.MethodList$ForLoadedMethods.
Caused by: java.lang.ClassNotFoundException: javax.el.ELContext
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 49 more
我的代码:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.PageContext;
import org.mockito.Mockito;
import junit.framework.TestCase;
public class xxxxxx extends TestCase {
public xxxxxxxxxxxxxxxxx xx = new xxxxxxxxxxxxxxx();
private final PageContext pageContext = Mockito.mock(PageContext.class);
public HttpServletRequest request;
protected void setUp() throws Exception {
super.setUp();
xxxxxxxxx.setPageContext(pageContext);
request = Mockito.mock(HttpServletRequest.class);
xxxxxxxx.setPageContext(pageContext);
Mockito.when(pageContext.getRequest()).thenReturn(request);
}
【问题讨论】:
-
欢迎来到 Stackoverflow。请使用格式选项使帖子可读。
-
尝试在你的类路径中添加 el-api.jar