2016-03-30 7 views
0

エスプレッソを使用してテストしたいコードに対応するAPI呼び出しのログインUIがあります。ログインボタンをクリックすると、API呼び出しが行われ、API呼び出しが実行されている間、ProgressBarが表示され、応答が取得されると可視性は消えてしまいます。ほとんどの場合、呼び出しは非常に瞬間的なので、ProgressBarビューでisDisplayed()をチェックするとfalseになります。 >目に見える - - >行って瞬間でも表示が表示されているかどうかを確認

onView(withId(R.id.edit_text_username)).perform(typeText("asd")); 
    onView(withId(R.id.edit_text_password)).perform(typeText("asd"), closeSoftKeyboard()); 
    onView(withId(R.id.forward_button)).check(matches(isEnabled())); 
    onView(withId(R.id.forward_button)).perform(click()); 

    onView(withId(R.id.progress_bar_gateway)).check(matches(isDisplayed())); 

プログレスバーの可視性がなくなってから切り替えられたかどうかを確認する方法はあります - 以下のコードはありますか?

+0

あなたは見えるようにしたいと思っています。 –

+0

ProgressBarは、ログインAPI呼び出しが実行されているときに表示されます – Tushar

+0

あなたはasynctaskを使用していますか? –

答えて

0

あなたはuiautomator-uiwatcherをチェックする必要があります。 Uiautomatorは計器で作動します。エスプレッソの中にあなたの勘定コードを入れることができます。

今やあなたの状況になる - 考えはProgressBar visibilityのUI変化を検出することです。このアクティビティのウォッチャを登録し、"what to do code" at gone -> visible -> goneを追加できます。 uiautomatorとエスプレッソを併用

public class watchProgressbar implements UiWatcher { 

    public boolean checkForCondition() { 
    //Add uiautomator code to detect the visibility change of pregress bar. 
    //Add what you want to do when a state change is detected. 

    } 

} 

ホープこのhelps.An exampleコード -

サンプル。

+0

UiAutomatorがfindObject(...)呼び出し中に一致を見つけることができない場合にのみUiWatchersが実行されます。残念なことに、このユースケースでは役に立たないでしょう。 –

関連する問題