gpt4 book ai didi

android - jmockit 和 robolectric 可以共存吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:26 25 4
gpt4 key购买 nike

我正在尝试使用 Robolectric 实现单元测试以替换 android.jar 中的 stub 方法,同时还使用 jMockit 模拟 Android 类(在我的例子中是 Fragment)。但是,我似乎无法让它工作。如果我用 @RunWith(RobolectricTestRunner.class) 注释测试类,我得到:

java.lang.IllegalStateException: JMockit wasn't properly initialized; check that jmockit.jar precedes junit.jar in the classpath (if using JUnit; if not, check the documentation)

如果我使用 @RunWith(JMockit.class) 或不使用 @RunWith,我会得到“ stub !”异常(exception)情况。

目前,我的类路径按以下顺序排列:robolectric、jmockit、junit、android。

有人能让 jmockit 和 robolectric 一起玩得很好吗?

最佳答案

这应该是可能的。我还没有对此进行测试,但您可以创建自己的测试运行器。

查看 JMockit 和 Robolectric 测试运行器的源代码:

在这两个中,Robolectric 一个要复杂得多,因此我们不想重复该功能。 JMockit 测试运行器相当简单。它应该可以扩展 RobolectricTestRunner 并包含 JMockit 功能。

import mockit.internal.startup.*;
class MyTestRunner extends RobolectricTestRunner {

static { Startup.initializeIfNeeded(); }

/**
* Constructs a new instance of the test runner.
*
* @throws InitializationError if the test class is malformed
*/
public MyTestRunner(Class<?> testClass) throws InitializationError
{
super(testClass);
}
}

关于android - jmockit 和 robolectric 可以共存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com