1

何らかの理由で、Toast.makeText()。show()およびdialog.show()の呼び出しは、ActivityInstrumentationTestCase2クラスのテストメソッドから呼び出されても何もしません。

誰かがこれを修正する理由や方法を知っていますか?

例:

public class MyTest extends ActivityInstrumentationTestCase2<MyActivity> {

    public MyTest(String name)
    {
        super("com.mypackage.activities", MyActivity.class);
        setName(name);
    }

    public exampleTest()
    {
        //This works to show that the test class is running correctly
        TouchUtils.drag(this, 200.0F, 200.0F, 300.0F, 300.0F, 5);

        //The following line does nothing
        Toast.makeText(getActivity(), "toast message", Toast.LENGTH_LONG).show();

        //Sleep to make sure we can see the message
        SystemClock.sleep(5000);
    }
}
4

1 に答える 1

0

アプリケーションのUIスレッドでコードを実行する必要があります。

MyActivity myActivity = getActivity();

// create a toast on application's ui thread.
// you can also use getInstrumentation().runOnMainSync() here.
myActivity.runOnUiThread(new Runnable() {
  public void run() {
    Toast.makeText(myActivity, "toast message", Toast.LENGTH_LONG).show();
  }
});

// wait a second to see the effect.
try {
  Thread.sleep(1000);
} catch (InterruptedException e) {
  e.printStackTrace();
}

お役に立てれば。

于 2012-05-03T21:36:44.020 に答える