首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMockit javaagent没有初始化JMockit

JMockit javaagent没有初始化JMockit
EN

Stack Overflow用户
提问于 2013-12-19 02:06:33
回答 2查看 7.8K关注 0票数 4

我已经设置了JMockit,以便与一些JUnit测试一起使用,也使用Robolectric,但是我会遇到错误。我主要是使用maven来运行测试。

当我使用mvn测试和配置为指定这里的javaagent运行测试时,就会得到通常的异常:

java.lang.IllegalStateException: JMockit没有正确初始化;在类路径中检查jmockit.jar先于junit.jar (如果使用JUnit,则检查文档)

我已经验证了JMockit在JUnit之前的类路径上,使用mvn dependency:build-classpathmvn test --debug。我还验证了使用-javaagent适当地调用mvn test --debug参数。

图书馆版本:

  • JDK 1.6
  • JMockit 1.5
  • JUnit 4.8.2
  • Robolectur2.2RobolecturalRunner阻止我使用JMockit跑步者。
  • Maven 3.0.3
  • 保险2.14.1

考试课程如下:

代码语言:javascript
复制
@RunWith(RobolectricTestRunner.class)
public class HelpFragTest {

    FragmentActivity activity;
    FragmentManager fragmentManager;
    @Mocked ActionBarManager actionBarManager;

    @Before
    public void setup() throws Exception {
        activity = Robolectric.buildActivity(FragmentActivity.class).create().resume().get();
        fragmentManager = activity.getSupportFragmentManager();
        MyApplication.instance().setActionBarManager(actionBarManager);
    }

    @Test
    public void testShow(){
        new NonStrictExpectations() {{
            Helper.staticMethod(anyString, anyString);
            actionBarManager.clear();
            actionBarManager.setTitle(anyString);
            actionBarManager.refresh();
        }};
        HelpFrag frag = HelpFrag.newInstance();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.add(frag, StringUtils.EMPTY);
        transaction.commit();

        assertTrue(frag.isVisible());

    }
}

我也在没有显式运行程序或JavaAgent的情况下尝试过,在这种情况下,我从相同的代码中得到以下异常:

java.lang.IllegalStateException:记录期望的无效位置

EN

回答 2

Stack Overflow用户

发布于 2013-12-23 20:42:26

我也遇到过同样的问题,问题似乎是Robolectric运行程序干扰了JMockit-JUnit集成。见

票数 2
EN

Stack Overflow用户

发布于 2015-06-06 21:54:33

症状:在java项目中使用Jmockit和junit运行maven时出错。

消息: JMockit没有正确初始化;检查jmockit.jar在类路径中先于junit.jar (如果使用JUnit,则检查文档)

原因:

在POM.xml文件中配置错误。Jmockit依赖性是在junit之后。

解决办法:

编辑POM.xml文件。jmockit.jar应该在junit.jar之前,然后jmockit依赖项应该在junit之前。

(总是把jmockit放在junit前面)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20672198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档