Я только начинаю использовать robotium.Демонстрацию можно запустить без каких-либо проблем, но когда я написал первый тестовый скрипт с использованием EditText
и Button
, возникли проблемы.Моя среда android 2.1 и скрипт довольно прост, просто введите имя пользователя и psw, затем нажмите кнопку sumbit для входа в систему.
Сценарий выглядит следующим образом:
package com.tpc.test;
import com.tpc.login.Login;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.Smoke;
public class LoginTest extends ActivityInstrumentationTestCase2<Login>{
private Solo solo;
public LoginTest() {
super("com.tpc", Login.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Smoke
public void testApp() throws Exception {
String appName = solo.getCurrentActivity().getClass().getSimpleName();
System.out.println(appName);
solo.getButton(0).getClass().getSimpleName();
solo.assertCurrentActivity("Expected login activity", appName);
System.out.println(solo.getButton(0).getText());//can get the text of button
solo.enterText(0, "name"); //input name to the 1st EditText is OK
solo.enterText(1, "psw"); // Actually inout psw after name to the 1st EditText
solo.clickOnButton(0); //Expect click the 1st button.Actually click the 1st EditText
//assert of sample, not been modified
boolean expected = true;
boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");
assertEquals("Note 1 and/or Note 2 are not found", false, actual);
}
@Override
public void tearDown() throws Exception {
try {
solo.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
getActivity().finish();
super.tearDown();
}
}
Одна проблема - это имя и pswзаполняется в первом EditText
, другой - solo.clickOnButton(0);
, щелкните первый EditText
, НЕ первый Button
.Я также пытался использовать текстовое имя Button
, но результат был таким же.Кажется, все операции были поставлены на первое EditText
.Я хочу в чем проблема.Любое предложение? Спасибо