【问题标题】:How to test handler message using roboelectric or mockito如何使用 roboelectric 或 mockito 测试处理程序消息
【发布时间】:2013-06-25 07:15:54
【问题描述】:

我正在尝试使用包含 handler.sendMessage(msg): 的 roboelectric 和 mockito 框架测试一段代码

public void emailLogin(){
...
    mHandler.sendMessage(message);
}

Handler mHandler = new Handler(new Callback() {

        public boolean handleMessage(Message msg) {
            System.out.println("called");
            return false;
        }
});

处理程序可以在没有正常环境的情况下完美运行, 但是如果我为该方法编写单元测试,则处理程序是 没有触发。

robolectric 中是否缺少 handler.sendMessage(msg)? 或者我们必须单独测试处理程序?

我不想通过单元测试来测试它自己的处理程序, 我要测试的是我的函数,它包含处理程序。

【问题讨论】:

    标签: android android-testing android-handler


    【解决方案1】:

    看看:

    Robolectric.runUiThreadTasks();
    

    在使用RobolectricTestRunner 类运行测试时,loopj Android 异步 Http 客户端库中的 Handlers 遇到了同样的问题,最终使用了此处提到的类似方法:https://groups.google.com/forum/#!topic/robolectric/hbcTw3jLXys

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      相关资源
      最近更新 更多