如何测试 - 测试Android系统应用程序

时间:2017-01-17 16:41:22

标签: android unit-testing system instrumentation platform

我搜索了这个问题,但没有找到答案。

假设有一个系统应用程序,它与android系统一起安装,例如:拨号器应用。

现在我想进行单元测试或测试 - 测试这个应用程序。我不想使用AOSP Android.mk。还有替代方法吗?例如我可以创建一个gradle项目来测试吗?

2 个答案:

答案 0 :(得分:1)

对于仪器测试,我个人创建一个消耗uiautomator的独立应用程序:https://developer.android.com/topic/libraries/testing-support-library/index.html#UIAutomator

这允许模拟用户:

@org.junit.Test
public void testCheckContact() throws InterruptedException {
    UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
    assertThat(device, notNullValue());
    device.pressHome();

    Context context = InstrumentationRegistry.getInstrumentation().getContext();
    Intent intent = context.getPackageManager().getLaunchIntentForPackage("systempackageName");
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    context.startActivity(intent);

    ...
    ...

    PhoneActivityPage phoneActivityPage = new PhoneActivityPage();
    phoneActivityPage.clickContacts();

    assertEquals("Contacts", phoneActivityPage.getSelectedTab());
}

您可以在此独立测试项目中的单独类中定义PhoneActivityPage和接口。

我希望这会有所帮助。

答案 1 :(得分:0)

您可以使用the UiAutomator system来测试任意应用,包括系统应用。但是,输入和输出有些限制。