如何在JVM上对使用Android SDK类的POJO进行单元测试?

时间:2013-07-09 10:07:31

标签: android junit jvm mocking stub

我有一个名为仓库的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上运行这个单元测试?

2 个答案:

答案 0 :(得分:0)

尝试使用Powermock模拟Bundle,使用其模拟最终类的能力here - Powermock MockFinal

答案 1 :(得分:0)

我发现Robolectric,这正是我想要的。我本来可以使用模拟,但是一半的单元测试将包括模拟设置等。

  

“一个单元测试框架,可以对Android SDK jar进行解析   试驾Android应用程序的开发。测试在里面运行   工作站上的JVM几秒钟。“