执行 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" 按钮但未输入用户名后显示错误消息,则测试应检查错误消息是否正确显示。这样的测试在应用程序正确实现时会通过,而在有错误时会失败。
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" 按钮但未输入用户名后显示错误消息,则测试应检查错误消息是否正确显示。这样的测试在应用程序正确实现时会通过,而在有错误时会失败。