Java 可以在uiautomator中使用继承吗?如果是,怎么做?
当我尝试实例化Java 可以在uiautomator中使用继承吗?如果是,怎么做?,java,android,testing,android-testing,android-uiautomator,Java,Android,Testing,Android Testing,Android Uiautomator,当我尝试实例化testaylout()并运行应用程序时,testAXEndTrip()也会运行。为什么呢 public class ApplicationTest extends UiAutomatorTestCase { public void testAYLogout() throws RemoteException, UiObjectNotFoundException { //Get the device state UiDevice myDevi
testaylout()
并运行应用程序时,testAXEndTrip()
也会运行。为什么呢
public class ApplicationTest extends UiAutomatorTestCase {
public void testAYLogout() throws RemoteException, UiObjectNotFoundException {
//Get the device state
UiDevice myDevice = getUiDevice();
//menu button
UiObject menuButton = new UiObject(new UiSelector().className(android.widget.ImageButton.class.getName()).index(0));
//logout button
UiObject logoutButton = new UiObject(new UiSelector().className(android.widget.CheckedTextView.class.getName()).text("Logout"));
//yes button
UiObject yesButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("Yes"));
//no button
UiObject noButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("No"));
UiObject loginText = new UiObject(new UiSelector().className(android.widget.TextView.class.getName()).text("Login"));
if (!myDevice.isScreenOn()) {
myDevice.wakeUp();
}
//click menu button and wait for new window
menuButton.clickAndWaitForNewWindow();
assertTrue(logoutButton.exists());
//click logout
logoutButton.clickAndWaitForNewWindow();
//click no
noButton.clickAndWaitForNewWindow();
menuButton.clickAndWaitForNewWindow();
logoutButton.clickAndWaitForNewWindow();
//click yes button
yesButton.clickAndWaitForNewWindow();
assertTrue(loginText.exists());
}
public void testAXEndTrip() throws RemoteException, UiObjectNotFoundException {
//get device
UiDevice myDevice = getUiDevice();
//pick up location feild
UiObject okButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("Ok").index(0));
//end trip button
UiObject endTripButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("END TRIP").index(1));
//no button
UiObject noButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("No"));
//yes button
UiObject yesButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("Yes"));
//submit button
UiObject submitButton = new UiObject(new UiSelector().className(android.widget.Button.class.getName()).text("Submit"));
//rate button
UiObject rateButton = new UiObject(new UiSelector().className(android.widget.ImageButton.class.getName()).index(4));
//feedback field
UiObject feedback = new UiObject(new UiSelector().className(android.widget.EditText.class.getName()).index(1));
//map
UiObject map = new UiObject(new UiSelector().className(android.view.View.class.getName()).index(0));
//wake up device if screen is off
if (!myDevice.isScreenOn())
myDevice.wakeUp();
rateButton.waitForExists(5000);
rateButton.clickAndWaitForNewWindow();
feedback.setText("ride or die ma niguh");
submitButton.clickAndWaitForNewWindow();
assertTrue(map.exists());
}
}
这是我的主课
public class MainTest extends ApplicationTest{
public static void TestMain() throws RemoteException, UiObjectNotFoundException {
MainTest login = new MainTest();
login.testAYLogout();
}
}
你应该使用
首先将uiautomator
依赖项添加到gradle文件中
dependencies {
...
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}
然后,创建一个像这样的测试用例类
@RunWith(AndroidJUnit4.class)
@SdkSuppress(minSdkVersion = 18)
public class MySampleTest extends MyAbstractTest {
...
@Test
public void myTest() {
...
}
}
最后,运行测试。确保指定AndroidJUnitRunner
作为项目中的默认检测运行程序
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
我已经这样做了,先生,我的应用程序正在运行,没有任何问题。但是,既然android是java,那么有可能使用继承吗?找出我做错的地方,谢谢大家的帮助。如果其他人知道问题出在哪里,对你同样处境的人会很有帮助。如果这是解决方案,请接受答案关闭它。