Android功能测试输入编辑文本随机缺失

Android功能测试输入编辑文本随机缺失,android,android-testing,Android,Android Testing,我正在为我的活动编写一个功能测试,其中包含EditText和TextView。TextView根据用户从EditText输入的内容进行更改。当我运行测试时,EditText有时无法获取我的输入,因此测试失败 下面是我的测试的最低版本,它仍然给了我同样的问题 public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { private MainActivity ma

我正在为我的活动编写一个功能测试,其中包含EditText和TextView。TextView根据用户从EditText输入的内容进行更改。当我运行测试时,EditText有时无法获取我的输入,因此测试失败

下面是我的测试的最低版本,它仍然给了我同样的问题

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”测试,不使用任何第三方测试框架

我刚开始使用安卓系统,所以我不知道我是否造成了某种竞赛条件。请告诉我是什么导致了这种奇怪的行为