2011-07-13 7 views
5

私は、アンドロイドOS関連のリソースを使用していないJavaクラスに対してプレーンなjunitテストを実行したいと思います。しかしながら;私がEclipseでjunitテストを実行しようとすると、次のエラーが発生します。アンドロイドでプレーンなバニラジュニットテストを行うには?

guarantee(_name_index != 0 && _signature_index != 0) 
    failed: bad constant pool index for fieldDescriptor 

Imは、ライブラリリソースとしてjunit-4.8.2.jarを使用しています。

私は間違っています。 私は最終的にアンドロイドリソースをテストするための別個のテストプロジェクトをセットアップします。

おかげ

+0

[Androidアプリはシミュレータまたはハードウェアで起動できません](http://stackoverflow.com/questions/5837897/android-app-doesnt-launch-in-simulator-or-hardware) – MByD

答えて

1

あなたは同じプロジェクトでのJUnit 4とJUnit 3(アンドロイドに含まれる)混在させることはできません。 あなたのテストが有意義であるためには、Dalvikでテストする必要があります。そうしないと、JavaSEとの非互換性が精度に影響することがあります。 回避策として、独立したクラスをテストするために別々のプロジェクトを作成することができます。

+2

dalvikは、ターンアラウンドタイムをテストするために30秒〜1分を追加します。 TDDの場合、これは容認できない遅延です。そして、非常に多くのテストは、異常なライブラリ関数に依存しないので、非互換性の影響を受けてはいけません。はい、dalvikの下で定期的に実行することは不可欠ですが、瞬時にテストするためには必要ありません。 – Jules

2

この問題は、既存のJUnit実行コンフィギュレーションを削除し、代わりにAndroid JUnit実行コンフィギュレーションを使用して解決しました。

Eclipseは、JUnitテストとして実行するときに、EclipseランナーまたはAndroidランナーを使用するかどうかを尋ねる必要があります。後者を選んでください。

0

私が同意するのは、あなたが単にアンドロイドアプリケーションの外で(非常に望ましい)ダルビクを使うのは愚かなメソッドをテストしたいときです。たぶん、別々のJavaプロジェクトを作成するのが最適なオプションであり、テストするクラスをインポートすることです。それはうまくいくようです。

関連する問題