我正在尝试使用Robolectric来实现单元测试,以替换android.jar中的 stub 方法,同时还使用jMockit来模拟Android类(在我的情况下为Fragment)。但是,我似乎无法使其正常工作。如果使用@RunWith(RobolectricTestRunner.class)
注释测试类,则会得到:
如果我使用@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 - android-jmockit和robolectric可以共存吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14780965/