Android功能测试输入编辑文本随机缺失
我正在为我的活动编写一个功能测试,其中包含EditText和TextView。TextView根据用户从EditText输入的内容进行更改。当我运行测试时,EditText有时无法获取我的输入,因此测试失败 下面是我的测试的最低版本,它仍然给了我同样的问题Android功能测试输入编辑文本随机缺失,android,android-testing,Android,Android Testing,我正在为我的活动编写一个功能测试,其中包含EditText和TextView。TextView根据用户从EditText输入的内容进行更改。当我运行测试时,EditText有时无法获取我的输入,因此测试失败 下面是我的测试的最低版本,它仍然给了我同样的问题 public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { private MainActivity ma
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
private MainActivity mainActivity;
public MainActivityTest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mainActivity = getActivity();
}
public void testEditTextOne() {
final EditText e = (EditText) mainActivity.findViewById(R.id.edit_message);
getInstrumentation().runOnMainSync(new Runnable() {
@Override
public void run() {
e.requestFocus();
}
});
getInstrumentation().waitForIdleSync();
getInstrumentation().sendStringSync("120");
getInstrumentation().waitForIdleSync();
assertEquals("120", e.getText().toString());
}
public void testEditTextTwo() {
final EditText e = (EditText) mainActivity.findViewById(R.id.edit_message);
getInstrumentation().runOnMainSync(new Runnable() {
@Override
public void run() {
e.requestFocus();
}
});
getInstrumentation().waitForIdleSync();
getInstrumentation().sendStringSync("130");
getInstrumentation().waitForIdleSync();
assertEquals("130", e.getText().toString());
}
}
公共类MainActivityTest扩展ActivityInstrumentationTestCase2{
私人活动;
公共维护活动测试(){
超级(MainActivity.class);
}
@凌驾
受保护的void setUp()引发异常{
super.setUp();
mainActivity=getActivity();
}
public void testEditTextOne(){
final EditText e=(EditText)mainActivity.findViewById(R.id.edit_消息);
getInstrumentation().runOnMainSync(新的Runnable()命令){
@凌驾
公开募捐{
e、 requestFocus();
}
});
getInstrumentation().waitForIdleSync();
getInstrumentation().sendStringSync(“120”);
getInstrumentation().waitForIdleSync();
assertEquals(“120”,例如getText().toString());
}
public void testEditTextTwo(){
final EditText e=(EditText)mainActivity.findViewById(R.id.edit_消息);
getInstrumentation().runOnMainSync(新的Runnable()命令){
@凌驾
公开募捐{
e、 requestFocus();
}
});
getInstrumentation().waitForIdleSync();
getInstrumentation().sendStringSync(“130”);
getInstrumentation().waitForIdleSync();
assertEquals(“130”,例如getText().toString());
}
}
当我运行上述测试时,大多数情况下,testEditTextOne()
会通过,testEditTextTwo()
会失败。有时,两个测试都失败了
testEditTextTwo()
如果我单独运行它,它会通过,但如果我重复运行大约10次,它有时也会失败
我在Android Studio 1.1.0上运行“Android Instrumentation tests”测试,不使用任何第三方测试框架
我刚开始使用安卓系统,所以我不知道我是否造成了某种竞赛条件。请告诉我是什么导致了这种奇怪的行为