3

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

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)?或者我们必须单独测试处理程序?

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

4

1 回答 1

2

看看:

Robolectric.runUiThreadTasks();

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

于 2014-04-24T17:39:30.573 回答