0

AndroidアプリでWebサービス呼び出しをテストするためのスイートを作成したいと思います。それらはAsynchTaskを拡張します。

同期呼び出しを提供するようにAPIを変更したくありません。

私はすでにJUnit/Androidテストプロジェクトで試しました。メソッドは実行されますが、コールバックは実行されません。

少なくとも元のプロジェクトの依存関係をうまく追加することができるテストプロジェクトのセットアップを使用するために、私はハックを行いました。TestCaseサブクラスを使用し続けましたが、テストメソッドを使用する代わりに、setUp()メソッド内から手動でカスタムテストメソッドを呼び出し、JUnitのassertを使用する代わりに、デバッグメッセージをログに出力しました。クラスが高速に終了したためにコールバックが実行されない場合に備えて、Thread.sleep(10000)を呼び出すテストメソッドも追加しました。何を推測し、また機能しませんでした。コールバックはまだ実行されません。以前にログメッセージを受け取りましたが、コールバックのログメッセージが表示されません。

プレーンJavaプロジェクトも試しました。しかし、AsynchTaskやその他のAndroidクラスが原因で、これも機能しませんでした。調査を読んだ限り、Androidライブラリは「スタブ」されており、Androidプロジェクト内でのみ使用されることになっているため、AndroidをライブラリとしてJavaプロジェクトに追加することはできませんでした。

では、これらのWebサービスをテストするにはどうすればよいですか?プレーンJavaプロジェクトを使用してWebサービスだけをテストできました。しかし、パラメータなどを構築するラッパークラスをテストしたいと思います。ただし、これらのラッパークラスはAndroidライブラリおよびAsynchTaskと結合されており、これを変更する方法はありません。

4

0 に答える 0