我建议在 Android 中查看有关 UI 测试的文档。
UiAutomatorTestCase
您可以创建一个从 UI 扩展并在 UI 中导航的测试类。下面的代码模拟用户通过从主屏幕 -> 应用程序菜单 -> 单击您的应用程序来打开您的应用程序。
public class TestClass extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
// Simulate a short press on the HOME button.
getUiDevice().pressHome();
// We’re now in the home screen. Next, we want to simulate
// a user bringing up the All Apps screen.
// If you use the uiautomatorviewer tool to capture a snapshot
// of the Home screen, notice that the All Apps button’s
// content-description property has the value “Apps”. We can
// use this property to create a UiSelector to find the button.
UiObject allAppsButton = new UiObject(new UiSelector()
.description("Apps"));
// Simulate a click to bring up the All Apps screen.
allAppsButton.clickAndWaitForNewWindow();
// In the All Apps screen, the Settings app is located in
// the Apps tab. To simulate the user bringing up the Apps tab,
// we create a UiSelector to find a tab with the text
// label “Apps”.
UiObject appsTab = new UiObject(new UiSelector()
.text("Apps"));
// Simulate a click to enter the Apps tab.
appsTab.click();
// Next, in the apps tabs, we can simulate a user swiping until
// they come to the Settings app icon. Since the container view
// is scrollable, we can use a UiScrollable object.
UiScrollable appViews = new UiScrollable(new UiSelector()
.scrollable(true));
// Set the swiping mode to horizontal (the default is vertical)
appViews.setAsHorizontalList();
// Create a UiSelector to find the Settings app and simulate
// a user click to launch the app.
UiObject yourApp = appViews.getChildByText(new UiSelector()
.className(android.widget.TextView.class.getName()),
"YOUR_APP_NAME");
yourApp.clickAndWaitForNewWindow();
//This is where you can put your wait to wait for the activity
//to load the fragment
// Validate that the package name is the expected one
UiObject fragmentObject = new UiObject(new UiSelector()
.resourceId(R.layout.fragment/*the layout id of your fragment*/));
assertTrue("Fragment not loaded",
fragmentObject.exists());
}
}