2016-08-15 68 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

测试代码只有在被测代码无法正常工作时才会失败。由于模拟不良用户输入而设计失败的测试设计不当。相反,测试应该检查应用程序在用户行为不当时的正确响应。例如,如果应用程序在没有输入用户名的情况下单击“登录”按钮后显示错误消息,则测试应检查错误消息是否正确显示。这样的测试将在应用程序正确实施时通过,并在出现错误时失败。

相关问题