Junit java.lang.RuntimeException: Stub!

问题

在 Android 项目下用 Junit 写单元测试,调用到 android.jar 中的类时,会出现 java.lang.RuntimeException: Stub! 错误。

e.g:

    public class JsonHelperTest {
    private JsonHelper jsonHelper;

    @Before
    public void setUp(){
        jsonHelper = new JsonHelper();
    }

    @Test
    public void jsonTest() throws Exception{
        JSONObject jsonObject = new JSONObject();
    }

第 11 行果断报错

解决方法

引入 Robolectric 来解决。
Robolectric 是 Android 下的单元测试框架,运行与 jvm 中,不需要通过运行Android设备或者模拟器来运行测试类;而且可以测试 UI 。

    @RunWith(RobolectricTestRunner.class)
    @Config(emulateSdk = 18)
    public class JsonHelperTest {
    private JsonHelper jsonHelper;

    @Before
    public void setUp(){
        jsonHelper = new JsonHelper();
    }

    @Test
    public void jsonTest() throws Exception{
        JSONObject jsonObject = new JSONObject();
    }

OK!

你可能感兴趣的:(个人笔记)