我有一个名为仓库的Java类,它使用Android的Bundle。在尝试对其进行单元测试时,我得到以下异常:
java.lang.RuntimeException: Stub!
该课程如下:
public class Warehouse {
private Bundle items;
public Warehouse(Bundle items) {
this.items = items;
}
}
在单元测试中,我有以下内容:
void testInitializeWarehouse() {
Bundle items = new Bundle();
Warehouse wh = new Warehouse(items);
assertNotNull(wh);
}
当我运行测试时,我得到 java.lang.RuntimeException:Stub! 我知道这个问题与我在JVM而不是Dalvik VM上运行单元测试有关,但有没有办法在JVM上运行这个单元测试?
答案 0 :(得分:0)
尝试使用Powermock
模拟Bundle
,使用其模拟最终类的能力here - Powermock MockFinal
答案 1 :(得分:0)
我发现Robolectric,这正是我想要的。我本来可以使用模拟,但是一半的单元测试将包括模拟设置等。
“一个单元测试框架,可以对Android SDK jar进行解析 试驾Android应用程序的开发。测试在里面运行 工作站上的JVM几秒钟。“