2016-08-15 29 views
1

Android Studio 2.1.2如果EditText爲空,執行Espresso測試並失敗

我試圖讓測試失敗,如果用戶單擊按鈕並且用戶名爲空。這是我的代碼如下。但是,測試總是通過。有沒有辦法做測試,所以如果EditText是空的,它會失敗。

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

你的應用在這個用例中做了什麼(即當用戶在用戶名爲空時點擊按鈕)?這種行爲可能是你應該測試的。測試應該設計爲在應用程序行爲正確時通過。由於用戶錯誤輸入而導致失敗的測試設計不好,因爲失敗的測試應該表明該應用程序有錯誤。 –

回答

5

測試代碼只有在被測代碼無法正常工作時纔會失敗。由於模擬不良用戶輸入而設計失敗的測試設計不當。相反,測試應該檢查應用程序在用戶行爲不當時的正確響應。例如,如果應用程序在沒有輸入用戶名的情況下單擊「登錄」按鈕後顯示錯誤消息,則測試應檢查錯誤消息是否正確顯示。這樣的測試將在應用程序正確實施時通過,並在出現錯誤時失敗。

相關問題