2016-08-15 18 views
1

のAndroid Studioの2.1.2エスプレッソテストを実行し、失敗のEditTextが空の場合

私は、ユーザーがボタンをクリックすると、ユーザー名が空の場合に失敗するテストを取得しようとしています。これは私のコードです。ただし、テストは常に成功します。テストを行う方法があるので、EditTextが空の場合は失敗します。

@Test 
public void shouldFailToLoginWithEmptyUserName() { 
    onView(withId(R.id.btnSignIn)).perform(ViewActions.click()); 
    onView(withId(R.id.etUsername)).check(ViewAssertions.matches(withText(""))); 
} 
+0

このユースケースではアプリが何をしますか(ユーザー名が空のときにユーザーがボタンをクリックしたとき)この動作は、おそらくテストする必要があります。このテストは、アプリが正しく動作するときに合格するように設計する必要があります。失敗したテストでは、バグがあることを示しているはずであるため、ユーザーからの不正な入力に失敗したテストはうまく設計されていません。 –

答えて

5

テストするコードが正しく動作しない場合にのみ、テストは失敗します。悪いユーザー入力をエミュレートするために失敗するように設計されたテストはうまく設計されていません。代わりに、テストでは、ユーザーが誤動作したときにアプリが正しく応答することを確認する必要があります。たとえば、ユーザーがユーザー名を入力せずに「サインイン」ボタンをクリックした後にエラーメッセージが表示された場合は、エラーメッセージが正しく表示されるかどうかを確認する必要があります。このようなテストは、アプリケーションが正しく実装されているときに合格し、バグがあるときに失敗します。

関連する問題