我正在使用java 6.如果我使用java代理-javaagent:C:\jmockit-1.20.jar
运行jmockit测试,它可以正常工作。但如果我删除它我会得到以下错误
java.lang.Exception: Method testData_1 should have no parameters
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java:69)
at org.junit.runners.ParentRunner.validatePublicVoidNoArgMethods(ParentRunner.java:131)
at org.junit.runners.BlockJUnit4ClassRunner.validateTestMethods(BlockJUnit4ClassRunner.java:178)
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:163)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:102)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
正如我在网上看到的那样,在JDK 1.6+上附加java代理并不是这样的要求,因为JMockit可以使用Attach API按需透明地加载Java代理。 但是为什么没有java代理就抛出错误呢?
答案 0 :(得分:2)
当您使用JUnit
执行测试时,
jmockit.jar
JUnit
这些选项中的任何一个都允许@RunWith(JMockit.class)
在JMockit
开始运行之前正确初始化自己。