Robotium チュートリアル: 初めての Android フレームワーク
ロボティウムとは何ですか?
Robotiumは、ネイティブおよびハイブリッドアプリケーションのテストケースを自動化するAndroidテストフレームワークです。Robotiumを使用すると、開発者は強力な自動GUIテストケースを作成できます。 Android アプリケーション。さらに、開発者は機能、システム、および受け入れテストのシナリオを作成して、多くのシナリオを広めることができます。 Android 活動。
Robotiumテストフレームワーク
スタンダード Android テストフレームワークには以下のような制限があります
- 複数のアクティビティを処理できない
- テスト実行のパフォーマンスが遅い
- テストケースは複雑で実装が難しい
ロボティウムフレームワーク でテストを実施するのがより良い選択です Android
Robotium はオープンソース フレームワークであり、 Android テストフレームワーク。 Robotium を使用すると、開発者は堅牢な自動 GUI テスト ケースを作成できます。 Android アプリケーション。さらに、開発者は複数の機能テスト、システムテスト、および受け入れテストのシナリオを作成できます。 Android 活動。
Robotium テスト ケース クラス
Robotium はクラスのセットを使用します (com.jayway.android.robotium.solo) テスト用。このクラスは、複数のアクティビティにまたがるテスト ケースをサポートします。 Solo は、ActivityInstrumentationTestCase2 と統合されています。
Robotiumのテストケースクラスを使用すると、テスターはアプリケーション設計の知識がなくてもテストケースを書くことができます(ブラックボックステスト)。これは、 Android テストケースクラス。
ロボティウムの使い方
Robotium を使用するには Android テストプロジェクトでは、以下の手順に従う必要があります
Robotium を使用してテストを実施する Android 応用。品質を保証するために Android 申請するには、以下の手順に従ってください
- 設計テスト仕様書
- テストプログラムの開発
- 実行する テストケース ターゲットデバイス上
- テスト結果を収集する
STEP 1) テスト仕様書の設計
- これはアプリケーションをテストする最初のステップです。このステップでは、テストするターゲットを定義します。あなたの中で Android アプリケーションでは、UI、アクティビティ、コンポーネント、サービスなど、テストする必要があるターゲットが多数あります。アプリケーションでターゲットを明確に定義すると、幅広いテスト範囲を達成するのに役立ちます。
- 実行するテストの種類 (単体テスト、機能テスト、システム テスト) を計画します。
- カバレッジを最大化するようにテスト ケースを設計しますが、テスト ケースの数は最小限に抑えます。 より多くのコードがテストされるほど、早期にバグが検出される可能性が高くなります。
STEP 2) TESTプログラムを書く
このセクションでは、 Android を使用したテストプログラム Android ジュニット テストとロボティウム。すでに開発していると仮定します。 Android 番組名 こんにちはAndroid。このプログラムには、以下で説明するいくつかの機能があります。
- 「Hello world!」というテキストを表示します。 画面上で。
- メッセージを表示します こんにちはAndroid ユーザーが「開始」ボタンを押したとき
システム要件
- Android プラットフォームには事前に統合された機能が付属しています JUnit 3.0フレームワーク。
- 作成するために Android からのテストプロジェクト Eclipse、コンピュータには以下がインストールされている必要があります。
- 最新バージョン Android プラットフォーム(現在 Android 8.1)
また、ご購読はいつでも停止することが可能です ダウンロード Eclipse ADT を内蔵した IDE (Android 開発者ツール)。必須のものが含まれています Android SDK コンポーネントとそのバージョン Eclipse IDE 。
Robotium テスト フレームワークの場合は、Robotium ライブラリを次の場所からダウンする必要があります。 ロボティウムのウェブページ.
創造する Android テストプロジェクト
- 「ファイル」→「新規作成」→「その他」をクリックします。
- 選択してください。 Android -> Android 以下の図のようにプロジェクトをテストします -> 次へを選択します
テストプロジェクトの名前を書きます。命名規則として、テスト プロジェクトの名前は「Hello」にする必要があります。Androidテスト"
テスト対象のアプリケーションを選択します。この場合、こんにちはですAndroid 「完了」をクリックします
テストスイートの作成
テスト仕様に基づいて、テスト プログラムのテスト スイートの作成を開始しました。さまざまなテスト フレームワークを選択できます。このチュートリアルでは、標準を選択します Android テストフレームワーク アクティビティ計測テストケース 2。 Robotium フレームワークを使用してテストする場合は、Robotium ライブラリ ファイルをプロジェクト フォルダーの libs ディレクトリに追加する必要があります。 (プロジェクトフォルダーに lib フォルダーを作成します)。
テスト ケースは、複数のテストを実行するためのフィクスチャを定義します。 テスト ケースを定義するには、以下のプログラム構造に従う必要があります。
- のサブクラスを実装する
TestCase
. - フィクスチャの状態を保存するインスタンス変数を定義する
- setUp() をオーバーライドしてフィクスチャの状態を初期化します。
- テスト後のクリーンアップは、tearDown() をオーバーライドして行います。
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroid; import com.jayway.android.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; import android.widget.TextView; public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> { private HelloAndroid mActivity; private TextView mView; private String resourceString; private Solo solo; public HelloAndroidTest () { // TODO Auto-generated constructor stub super("com.example.helloandroid",HelloAndroid.class); } @Override protected void setUp() throws Exception { // TODO Auto-generated method stub // super.setUp(); mActivity = this.getActivity(); solo = new Solo(getInstrumentation(),getActivity()); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world); } @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub //super.tearDown(); solo.finishOpenedActivities(); } public void testPrecondition() { assertNotNull(mView); } /* test Target application contains a text display "Hello World!"*/ public void testSearchText() { assertEquals(resourceString,(String) mView.getText()); } /* test HelloAndroid Activity on target application is exist*/ public void testCurrentActivity() throws Exception { solo.assertCurrentActivity("wrong activity", HelloAndroid.class); } /* test Application UI contains "Start" button */ /* send event click button to target application */ public void testSearchButton() throws Exception { boolean found = solo.searchButton("Start"); solo.clickOnButton("Start"); assertTrue(found); } }
テストケースの追加
- TestSuite と同じパッケージ内で、TestCase クラスを作成します
- 特定のアクティビティをテストするには、つまり HelloAndroid、テスト ケース エクステントを作成します。Android>
- このクラスでは、テスターは getActivity() メソッドを通じてテスト アクティビティを取得できます。
- 「test + 元のメソッド名」という名前のメソッドを作成することで、テストアクティビティのテストを自由に作成できます
- テストメソッドでは、テスターが使用できるのは、 Android JUnit 実際の値と期待値を比較する関数。これらの方法を以下に示します。
上記のテスト スイートでは、アプリケーション GUI に「Hello World!」というテキストが表示され、「開始」というボタン名が含まれることが検証されました。
ステップ 3) テストを実行する
テスト プログラムの作成が完了したら、以下の手順を使用してテストを実行します。
- お問合せ Android デバイスを PC に接続します (実際のデバイスがない場合はエミュレータを起動します)。
- IDE で右クリックし、「別名で実行」を選択します。Android 単体テスト
IDEでテストを実行するだけでなく、コマンドラインでテストを実行することもできます。このテストプログラムでは、テストパッケージはcom.example.helloandroid.testです。 Linux ターミナルでは、以下のコマンドを使用してこのパッケージ内のすべてのテストを実行できます。
$ adb シェル am インストルメント -w -e パッケージ com.example.helloandroid.test
STEP 4) テスト結果を取得する
テストが実行されると、テスト結果が得られます。
このテストプログラムでは、4 つのテストメソッドが実行されます。 この場合、すべてのテスト ケースが合格します。
テスト ケースが失敗した場合、出力が表示され、どのテスト ケースが失敗したかが示されます。
ソースコードの例
この記事には、チュートリアルをより明確に理解し、技術的な知識を素早く習得するのに役立つソース コードの例がいくつか含まれています。
- こんにちはAndroid: テスト中のアプリケーション。
- こんにちはAndroidホイール試乗: を使用したテストプログラム Android テストフレームワーク