希望这是一个容易回答的问题......
我正在使用RAD 7.5.2编写Junit测试。 我使用JUnit 3编写它们非常顺利,但后来我想模拟一些函数调用。 因此,我加载了jmockit 0.9.7和JUnit 4.6。 我还将-javaagent:jmockit.jar包含为VM参数。
当我“运行为Junit测试”时,它没有任何问题(至少在输出上看不到)。 Junit的输出很好,控制台中没有任何错误。
但是当我“以Junit测试方式进行调试”时,它就无法正常工作。 它将我转到:
InstrumentationImpl.class --> 找不到源
... 当我按继续时....
NativeMethodAccessorImpl.class --> 找不到源
... 当我再次按继续时...
Junit在此之后结束。 它将以下内容转储到控制台中:
Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:618) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:160) Caused by: java.lang.UnsatisfiedLinkError: sun/instrument/InstrumentationImpl.redefineClasses0([Ljava/lang/instrument/ClassDefinition;)V at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:98) at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:197) at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:184) at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:116) at mockit.internal.RedefinitionEngine.setUpInternalStartupMock(RedefinitionEngine.java:53) at mockit.internal.Startup.loadInternalStartupMocks(Startup.java:123) at mockit.internal.Startup.initialize(Startup.java:110) at mockit.internal.Startup.premain(Startup.java:97) ... 5 more
致命错误:处理-javaagent失败
我可以在我的测试中运行Junit 3和Junit 4,没有任何问题。 只有在使用-javaagent:jmockit.jar时(它们自己很好),才会出现问题,而我必须这样做才能使用jmockit。
有什么想法吗?