0

Android アプリケーションの TDD に関するアドバイスとガイダンスが必要です

複雑な Android アプリケーション (Web ゲーム用の自動ロボ プレーヤー) を開発しています。今、私はそのパイロットを持っています。開発を続ける前に、完全な TDD を作成したいと考えています。

このアプリケーションの主な目的は、http サーバーと通信するバックグラウンド サービスとして実行されることです。これは、json コンテンツを含む http 要求を送信します。

2 つの実行モードがあります。

- service mode - it will run in background- read some data configuration from database and communicate with the server 
- GUI mode - communication with server on demand + configuration for running in service mode.

GUI レイヤーは MVP として設計されているため、モジュール (MVP ユニット) で行われるすべてのビジネスはビューから分離されているため、すべてのアプリ ロジックは「非 Android 依存」です。

単体テストを作成する必要があるいくつかの大きなレイヤーがあります。

- domain data access : 
      database storage (ormlite)
      android specific storage - shared prefs.., 
      files
- server communication - http client (spring android rest template)
                         http content conversion (gson)

- background services - android services
- GUI - activities
- app business - android independent - algorithms, computations, ...

結論として、TDD が必要になります。これらのレイヤーごとに個別に、完全なフローの統合テストも必要です。

テストが含まれています:

  - database DAO tests
  - http client requests 
  - GSON conversion TDDs
  - business logic - simple tests for methods
  - unit testsfor running and scheduled background services
  - activity unit testing
  - test suites (service + DAO + json conversion + http requests)

私の最初の質問は、どの TDD フレームワークが私のニーズに最適かということです。モッキングを使用する必要がありますか?

行き方を教えてください。ありがとう

4

2 に答える 2

2

まず、自動テスト用: junit .


流暢なアサーションについては、 fest-assertionsを見ることができます。多くの例が提供されています。しかし、これを楽しんでくださいString

 assertThat("Frodo").startsWith("Fro").endsWith("do").hasSize(5);

調和がとれるだけでなく、生産性も向上します。


単体テストを書きたいので、mockオブジェクトを書く必要があります。もちろん、フレームワークなしで実行できますが、非常に tedious.

個人的に、私はMockitoの大ファンです。そのAPIは素晴らしく、非常に流暢です。さらに、BDDMockito静的メソッドを使用して、BDD方式でテストを作成することもできます。見て :

//given  
given(seller.askForBread()).willReturn(new Bread());
//when
Goods goods = shop.buyBread();
//then
assertThat(goods, containBread());

final classlikeなど、モックできないクラスに依存する場合がありますBluetoothAdapter。これらの場合 (およびこれらの場合にのみ) を使用できますPowerMock

このものも見てください:

本もあります : Android Application Testing Guide

于 2012-08-31T15:18:50.307 に答える
0

統合テストについて言及したので、LeanDogの私の友人によって最近発表されたAndroid の自動受け入れテスト フレームワークとしてのRoboGherkにも興味があるかもしれません。

于 2012-08-31T15:29:21.053 に答える