我刚开始使用机器人.演示可以毫无问题地运行,但是当我使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
一个问题是名字和psw都填写在第一个EditText,另一个是solo.clickOnButton(0);点击第一个EditText,而不是第一个Button.我也尝试使用文本名称Button,但结果是一样的.似乎所有的操作都放在第一位EditText.我想问题是什么.有什么建议吗?谢谢
我已经看过你要测试的应用程序,问题是你没有声明它支持高密度屏幕.当您在高密度仿真器/设备上使用Robotium时会出现问题.
您需要在AndroidManifest.xml中添加以下标记:
<supports-screens android:anyDensity="true"/>
如果您将该标记添加到AndroidManifest.xml,那么它将起作用.
| 归档时间: |
|
| 查看次数: |
6572 次 |
| 最近记录: |