AndroidTestをするうえでNoMachingViewExceptionというエラーが発生した。
例えば以下のようなコードでテストしたときである。
onView(withText("test")).check(matches(not(isDisplayed())));
このコードはダイアログが表示されていないことを確認するために、ダイアログ上の文字列"text"が画面にないということを確認するプログラムであった。しかしNoMachingViewExceptionというエラーが発生した。
このエラーはつまり、"text"という文字列を持ったViewが存在しないことを示している。
私は以下のようにコードを追加することで、エラーを解消できた。
new Thread (new Runnable(){
@Override
public void run() {
//エラーが発生したテストコードを記述
}
}
もしNoMachingViewExceptionが発生したら試していただきたい。
ただしなぜ通るのかは検討の余地があるので自己責任で…