Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何/我应该用Mockito对EventBus事件进行单元测试?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的 Android应用程序中使用Otto的EventBus.

在我的LoginNetworkOperation类中,我捕获了不同类型的网络连接错误,并为每个发布不同的总线事件,并且我的LoginPresenter类被注册为侦听器,并且在触发这些事件时调用某些方法.

我的问题是我是如何(并且我应该)单元测试LoginNetworkOperation是否抛出此事件而LoginPresenter是否使用mockito处理它?

我看了这个问题:Guava EventBus unit tests但它没有提供足够的信息,特别是在实现部分.

public class LoginNetworkOperation {

    public void execute(String username,String password) {
        try {
            // retrofit attempt
        } catch (Exception E) {
            bus.post(new ExceptionEvent(E));
        }
    }
}

public class LoginPresenter {

    void onExceptionEvent(ExceptionEvent exceptionEvent) {
        // Do Something with the exception event
    }
}

此外,这应该是受测试的主题,哪些应该是模拟对象?

在Android studio中使用JUnit mockito Robolectric,我的测试工件是单元测试

解决方法

这已经是一个集成测试:您将各个软件模块组合在一起并将其行为验证为一个组.

在这种情况下,“受测试的主题”是LoginNetworkOperation,EventBus和LoginPresenter的组合,模拟的对象是LoginNetworkOperation的输入,以及处理LoginPresenter输出的任何内容.

这三个软件模块也可以进行单元测试:

> LoginNetworkOperation.execute:模拟EventBus并验证是否使用正确的ExceptionEvent为不同的输入调用它.> LoginPresenter.onExceptionEvent:验证不同ExceptionEvents的正确行为.> EventBus.post:注册一个模拟的ExceptionEvent-Handler,发布一个ExceptionEvent并检查是否调用了Handler.

大佬总结

以上是大佬教程为你收集整理的android – 如何/我应该用Mockito对EventBus事件进行单元测试?全部内容,希望文章能够帮你解决android – 如何/我应该用Mockito对EventBus事件进行单元测试?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。