2011-05-19 6 views
2

私はJava EE、Ant、Maven、ユニットテスト、モックなどの長年のJava開発者です。私は現在、アンドロイドアプリを構築するのにgradleを使用しており、ユニットテストを見ていますそれら。そして、それは私に私の髪を引き裂くんだ!android testingを理解しよう

私の読書は、アプリケーションをテストするには、その中に別のアプリケーションをテストディレクトリに作成する必要があることを示しています。しかし、私はこの組み込みアプリがメインのアプリケーションクラスをどのように見ることができるのか分かりません。私は別のマニフェストと何か関係があるため、Googleがこれを思いついたと推測します。なぜ私は分からない。

この組み込みアプリケーションシステムを使用せずに、私は、APKのメインクラスを含むテストクラスを組み込み、インストルメンテーション宣言をマニフェストに追加し、展開し、テストランナーを実行することによって、ユニットテストを実行することができました。しかし、私はアプリケーションクラスを持つテストクラスをコンパイルし、すべての依存関係を含めて実際にはオプションではないようにしたくないし、エフェクトに関するドキュメントが見つからないため、マニフェストの変更の影響については本当にわからない。

これは、建物の構築システムに従っているgradleによって理解されていません。また、アンドロイドの方法は、埋め込まれたサブプロジェクト(テスト)がメインの親プロジェクトに依存しているようであることに注意してください。これは完全にgradleとmavenに矛盾しています。

もう1つのオプションは、テストプロジェクトを別にして、アプリプロジェクトの外部にあるようです。しかし、実際には、同様の規約を使用して、テストリソースのマニフェストと共に、別のディレクトリにテストを置くだけです。

誰かが、ディレクトリ構造のように、より多くのメイクに続いてユニットテストを実行しているエミュレータでテストすることができましたか?

答えて

1

エミュレータで単体テストを実行する必要がありますか?あまりにも遅いですか?私はrobolectric(http://pivotal.github.com/robolectric/)を使用しています。これは、モックと同様に動作するシャドウオブジェクトを作成します。私はprogaurd(http://proguard.sourceforge.net/)を使ってリリースビルドのテストを取り除いています。

+0

私はroboletricをすばやく見ましたが、できるだけデバイスの近くでテストを実行することをお勧めします。私が興味を持っているテストとして、分化/機能/ BDDテストがあります。ユニット純粋なJUnitとして実行できます。 – drekka

2

お試しください。Robotiumこれは、より良いテストケースのための多くの機能を提供します。あなたはそれを見ることができますhere

関連する問題