如何让Android Context进行测试?

时间:2014-05-14 10:49:06

标签: java android maven junit

我有一个从assets目录中读取属性的类。这个类的构造者有Context。我想为这堂课写测试,但我真的不知道如何在Android测试中获得上下文。

public class PropertyLoader {

    private Context context;
    private Properties properties;

    public PropertyLoader(Context context) {
        this.context = context;
        properties = new Properties();
    }

    public Properties getProperties(String FileName) {
        ...
    }
}

测试类

public class PropertyLoaderTest extends InstrumentationTestCase {
    @Test
    public void testSimple() {
        Context context = getInstrumentation().getContext();
        PropertyLoader propertyLoader = new PropertyLoader(context);
    }
}

我得到以下异常

junit.framework.AssertionFailedError: Exception in constructor: testSimple (java.lang.RuntimeException: Stub!

2 个答案:

答案 0 :(得分:1)

在Android模拟器或设备上运行测试。

您在桌面上使用的android.jar没有任何实现。所有方法都抛出RuntimeException: Stub!

或者,从代码中删除所有Android依赖项,以便您可以在不导入android.jar的情况下运行测试。

答案 1 :(得分:1)

带有上下文的TestCase(测试将在设备或模拟器上运行) - http://developer.android.com/reference/android/test/AndroidTestCase.html