执行 Espresso 测试并在 EditText 为空时失败

Perform Espresso test and fail if an EditText is empty

Android Studio 2.1.2

我试图让测试在用户单击按钮且用户名为空时失败。这是我下面的代码。然而,测试总是通过。有没有办法进行测试,如果 EditText 为空,测试就会失败。

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

只有当被测试的代码不能正常工作时,测试才会失败。由于模拟错误的用户输入而设计为失败的测试设计不佳。相反,测试应该检查应用程序在用户行为不当时是否正确响应。例如,如果应用程序在用户单击 "Sign In" 按钮但未输入用户名后显示错误消息,则测试应检查错误消息是否正确显示。这样的测试在应用程序正确实现时会通过,而在有错误时会失败。