我搜索了这个问题,但没有找到答案。
假设有一个系统应用程序,它与android系统一起安装,例如:拨号器应用。
现在我想进行单元测试或测试 - 测试这个应用程序。我不想使用AOSP Android.mk。还有替代方法吗?例如我可以创建一个gradle项目来测试吗?
答案 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来测试任意应用,包括系统应用。但是,输入和输出有些限制。