Java代理对于java 6上的jmockit测试用例是必需的吗?

时间:2016-04-11 15:37:29

标签: java jmockit

我正在使用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代理就抛出错误呢?

1 个答案:

答案 0 :(得分:2)

当您使用JUnit执行测试时,

  • 确保{class 1}}出现在类路径中的jmockit.jar
  • 之前
  • 或使用JUnit
  • 注释测试类
  • 或设置Java代理选项

这些选项中的任何一个都允许@RunWith(JMockit.class)JMockit开始运行之前正确初始化自己。