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 Asynchronous Http Client ライブラリ内のハンドラーがヒットしないという同じ問題に遭遇し、RobolectricTestRunnerここで言及された同様のアプローチを使用することになりました: https://groups.google.com/forum /#!topic/robolectric/hbcTw3jLXys

于 2014-04-24T17:39:30.573 に答える