简体   繁体   中英

How to let Android Test instrumentation testcases wait some times in order to get some result?

anyone can help me.I want to my testcases sleep to wait the textview text change ,but it seems the Thread.sleep() can not work !

backgroud : I use ActivityUnitTestCase to test one of my activity . below is the testcase, from log I can not get the changed text .

public void testCanStartup() throws Exception{
    m_activty = startActivity(m_intent, null, null);
    assertNotNull(m_activty);

                //get textview to check the view text's changes when oncreate and onresume
    TextView mem_percentview= (TextView) m_activty.findViewById(cn.opda.a.phonoalbumshoushou.R.id.mem_percent);

    Thread.sleep(50000);
    getInstrumentation().callActivityOnResume(m_activty);
    Log.v(DEBUGTAG,"mem text result is : " + mem_percentview.getText().toString());
    TextView actual_mempercentview = (TextView) m_activty.findViewById(cn.opda.a.phonoalbumshoushou.R.id.mem_percent);
    assertEquals(mem_percentview.getText().toString(),actual_mempercentview.getText().toString() );

}

How about:

  mem_percentview.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            Log.v(DEBUGTAG,"mem text result is : " + charSequence;
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM