2

Androidプロジェクトで事前にパッケージ化された機能を提供するために、外部ライブラリを開発しようとしています(それが正しい用語かどうかはわかりません)。Eclipseで作業して、適切なandroid.jarファイルをビルドパスに追加しました。編集中とコンパイル中の両方ですべてが満足のいくものです。

ただし、スレッド間通信にAndroidのハンドラークラスとメッセージクラス(android.os.Handler、android.os.Message)を使用すると、Androidアプリ内、エミュレーター、またはデバイスで実行していない限り、例外が発生します。実行中のAndroidターゲットを経由せずに、「スタンドアロン」の方法でライブラリをテストすることはできなくなりました。

これらの2つのAndroidクラスを含めても、ライブラリをスタンドアロンでテストできる方法はありますか?Androidソースを利用できるようにする必要がありますか?それとも、ある種の条件付きコンパイルを手で振る必要がありますか?

4

2 に答える 2

4

これらの2つのAndroidクラスを含めても、ライブラリをスタンドアロンでテストできる方法はありますか?

簡単ではありませんが、どうしても思い浮かびます。

Androidソースを利用できるようにする必要がありますか?

他にどこから実装を入手するかわかりません。しかし、もっと重要なことは、これらはOSの外部で単独で機能するように設計されていないことです。Cocoaクラスを1つか2つ取得して、Objective-Cライブラリにプルし、Windowsボックスで実行できると期待できる以上のことです。

カフから離れて、あなたが何を構築しているのかについて何も知らないので、私はあなたが導入している依存関係を作り、HandlerよりMessageプラグインしやすくします。純粋なJava実装を使用して、Androidの外部でテストします。おそらく、いくつかのモックですら。実際の実装を使用してAndroidの内部をテストします。

于 2010-05-03T00:52:39.977 に答える
1

android APIを実装するlibRobolectricを試して、次のような分離されたコードのJUnitテストを作成できるようにすることができます。

http://robolectric.org/

于 2014-02-25T17:22:46.367 に答える