如何使用robolectric vs mockito测试处理程序消息

时间:2013-06-25 07:15:55

标签: android android-testing android-handler

我正在尝试使用包含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)? 或者我们必须单独测试处理程序?

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

1 个答案:

答案 0 :(得分:1)

看看:

Robolectric.runUiThreadTasks();

我遇到了与使用RobolectricTestRunner类运行测试时loopj Android异步Http客户端库中的Handler相同的问题,并最终使用了此处提到的类似方法:{{3 }}