6

Android でのテスト駆動開発に JUnit を使用できますか? そうでない場合、 JUnit に似た代替手段はありますか?

Google で少し検索し、SO の投稿も読みましたAndroid Test Driven Development Android は、TDD を念頭に置いて作成されたことがないようです。TDD の学習と Android 開発を同時に始める前に、確認したかったのです。

4

3 に答える 3

7

JVM でテストを実行するには、 Robolectricに完全に依存できると思います。POJO のテストには JUnit4 を使用でき、Robolectric は Android コンポーネントのテストをサポートします。

私は Android 開発の TDD の初心者でもあります。Robolectric は、自分のコードをテストするのに非常に便利です。

このビデオでは、Android コードの単体テストで提供されるほとんどすべてのことを説明しています。

更新: Android スタジオのサポートと新しい Android エコシステムにより、単体テストをファースト クラスのプラクティスとして実行できるようになりました。詳細については、 http://developer.android.com/training/testing/unit-testing/local-unit-tests.htmlを参照してください。

Android コードをテストするための良い方法がいくつかあります。私がこれまでに見つけた最も効果的なものは、MVVM (model-view-viewmodel) または MVP (model-view-presenter) アプローチを使用することです。このアプローチでは、ビジネス ロジックとプレゼンテーション ロジックがビューから分離され、簡単にユニット化できます。テスト済み。

于 2013-04-15T20:12:51.983 に答える
3

ここに問題空間の説明が少しあります: http://www.techwell.com/2013/04/applying-test-driven-development-android-development

結論として、Robolectric を使用する必要があります。残念ながら、Robolectric は低速で​​あり、実用的なレベルでも TDD に従うと、数百のテストが数 10 秒間実行されることになります。そして、それはTDDでやりたいことではありません。TDD テスト パッケージは、最大でも数秒で実行されます。

私のアドバイスは次のとおりです。

  • Android クラスを呼び出すだけの Android クラスのラッパー クラスを作成します。
  • アプリのロジックを純粋な Java で記述します。
  • Junit (または TestNG など、好きなもの) を使用して、モデル/ビジネス ロジックをテストします。
  • ラッパー クラスに Robolectric を時々使用します (おそらく使用する必要はありません)。
  • (複数のクラス、Robolectric などを使用する統合テストを作成できますが、別の継続的統合サーバーでのみ実行できます (例: 毎時))

このアプローチにより、ロジックの移植性も向上します。

于 2013-09-02T13:07:11.090 に答える
3

はい、JUnit をテスト駆動開発に使用できます。開始するには、次のリンクを参照できます。http://developer.android.com/tools/testing/testing_android.html#JUnit ドキュメントに従って、junit.framework を使用して単体テストを実行できます。

于 2012-12-04T11:03:45.143 に答える