android - Mockito 测试调用了哪个回调

标签 android mockito junit4

我想在 mockito 中测试用户登录失败的时间

我的界面

public interface OnLoginFinishListener {
  void onFail();

  void onSuccess();
}

我的 LoginInteractor 类

public class LoginInteractor {

  public void validateCredentialsAsync(final String email, final String password, final OnLoginFinishListener listener) {
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            if(email.equals("sample@email.com") && password.equals("123456")){
                listener.onSuccess();
            }else {
                listener.onFail();
            }
        }
    }, 5000);
  }
}

如何编写登录失败的测试,谢谢

最佳答案

可能你想模拟你的 OnLoginFinishListener 并验证它是否调用了

            LoginInteractor in = new LoginInteractor();
            OnLoginFinishListener mockListner = mock(OnLoginFinishListener.class);
            doAnswer(new Answer<Void>() {

                @Override
                public Void answer(InvocationOnMock invocation) throws Throwable {
                    // TODO Auto-generated method stub
                    return null;
                }
            }).when(mockListner).onFail();
            doAnswer(new Answer<Void>() {

                @Override
                public Void answer(InvocationOnMock invocation) throws Throwable {
                    // TODO Auto-generated method stub
                    return null;
                }
            }).when(mockListner).onSuccess();
            in.validateCredentialsAsync("sample@email.com","wrong",mockListner);
            verify(mockListner,times(1)).onFail();
            verify(mockListner,never()).onSuccess();

关于android - Mockito 测试调用了哪个回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34604564/

相关文章:

java - Mockito 使用模拟对象测试 DAO

Mockito doNothing with Mockito.mockStatic

android - isApplicationBroughtToBackground 安全功能经常行为不端

android - 覆盖静音模式和/或媒体音量

java - 每 x 秒发送一次通知

java - MockitoInvocationHandler 类的 NoClassDefFoundError

java - 使用 gradle 并行运行 JUnit4 测试

android - 使用 Android Studio 的织物

java - Mockito UnfinishedStubbingException 与 when().thenReturn()

java - stub 检查异常 : how to handle the exception