Robotium チュートリアル: 初めての Android フレームワーク

ロボティウムとは何ですか?

Robotiumは、ネイティブおよびハイブリッドアプリケーションのテストケースを自動化するAndroidテストフレームワークです。Robotiumを使用すると、開発者は強力な自動GUIテストケースを作成できます。 Android アプリケーション。さらに、開発者は機能、システム、および受け入れテストのシナリオを作成して、多くのシナリオを広めることができます。 Android 活動。

Robotiumテストフレームワーク

スタンダード Android テストフレームワークには以下のような制限があります

  • 複数のアクティビティを処理できない
  • テスト実行のパフォーマンスが遅い
  • テストケースは複雑で実装が難しい

ロボティウムフレームワーク でテストを実施するのがより良い選択です Android

Robotium はオープンソース フレームワークであり、 Android テストフレームワーク。 Robotium を使用すると、開発者は堅牢な自動 GUI テスト ケースを作成できます。 Android アプリケーション。さらに、開発者は複数の機能テスト、システムテスト、および受け入れテストのシナリオを作成できます。 Android 活動。

Robotium の高度な機能
Robotium の高度な機能

Robotium テスト ケース クラス

Robotium はクラスのセットを使用します (com.jayway.android.robotium.solo) テスト用。このクラスは、複数のアクティビティにまたがるテスト ケースをサポートします。 Solo は、ActivityInstrumentationTestCase2 と統合されています。

Robotium テスト ケース クラス
Robotium と ActivityInstrumentationTestCase2 の統合

Robotiumのテストケースクラスを使用すると、テスターはアプリケーション設計の知識がなくてもテストケースを書くことができます(ブラックボックステスト)。これは、 Android テストケースクラス。

ロボティウムの使い方

Robotium を使用するには Android テストプロジェクトでは、以下の手順に従う必要があります

ロボティウムを使用する

Robotium を使用してテストを実施する Android 応用。品質を保証するために Android 申請するには、以下の手順に従ってください

  1. 設計テスト仕様書
  2. テストプログラムの開発
  3. 実行する テストケース ターゲットデバイス上
  4. テスト結果を収集する
Android
Android アプリケーションのテスト手順 テスト 手続き

STEP 1) テスト仕様書の設計

  • これはアプリケーションをテストする最初のステップです。このステップでは、テストするターゲットを定義します。あなたの中で Android アプリケーションでは、UI、アクティビティ、コンポーネント、サービスなど、テストする必要があるターゲットが多数あります。アプリケーションでターゲットを明確に定義すると、幅広いテスト範囲を達成するのに役立ちます。
  • 実行するテストの種類 (単体テスト、機能テスト、システム テスト) を計画します。
  • カバレッジを最大化するようにテスト ケースを設計しますが、テスト ケースの数は最小限に抑えます。 より多くのコードがテストされるほど、早期にバグが検出される可能性が高くなります。

STEP 2) TESTプログラムを書く

このセクションでは、 Android を使用したテストプログラム Android ジュニット テストとロボティウム。すでに開発していると仮定します。 Android 番組名 こんにちはAndroid。このプログラムには、以下で説明するいくつかの機能があります。

  • 「Hello world!」というテキストを表示します。 画面上で。
  • メッセージを表示します こんにちはAndroid ユーザーが「開始」ボタンを押したとき
こんにちはAndroid 申し込み
こんにちはAndroid 申し込み

システム要件

  • Android プラットフォームには事前に統合された機能が付属しています JUnit 3.0フレームワーク。
  • 作成するために Android からのテストプロジェクト Eclipse、コンピュータには以下がインストールされている必要があります。
  • 最新バージョン Android プラットフォーム(現在 Android 8.1)

また、ご購読はいつでも停止することが可能です ダウンロード Eclipse ADT を内蔵した IDE (Android 開発者ツール)。必須のものが含まれています Android SDK コンポーネントとそのバージョン Eclipse IDE 。

Robotium テスト フレームワークの場合は、Robotium ライブラリを次の場所からダウンする必要があります。 ロボティウムのウェブページ.

創造する Android テストプロジェクト

  • 「ファイル」→「新規作成」→「その他」をクリックします。
  • 選択してください。 Android -> Android 以下の図のようにプロジェクトをテストします -> 次へを選択します
新しく作る Android テストプロジェクト
新規作成 Android テストプロジェクト

テストプロジェクトの名前を書きます。命名規則として、テスト プロジェクトの名前は「Hello」にする必要があります。Androidテスト"

命名規則に基づいたテスト プロジェクト名の追加
命名規則に基づいてテスト プロジェクト名を追加します

テスト対象のアプリケーションを選択します。この場合、こんにちはですAndroid 「完了」をクリックします

選択する Target テスト中のアプリケーション
テスト対象のアプリケーションを選択してください

テストスイートの作成

テスト仕様に基づいて、テスト プログラムのテスト スイートの作成を開始しました。さまざまなテスト フレームワークを選択できます。このチュートリアルでは、標準を選択します 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 実際の値と期待値を比較する関数。これらの方法を以下に示します。
ロボティウムのメソッド例と Android テストフレームワーク
Robotium のメソッド例と Android テストフレームワーク

上記のテスト スイートでは、アプリケーション 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 つのテストメソッドが実行されます。 この場合、すべてのテスト ケースが合格します。

すべてのテストケースが成功した場合のテスト結果出力
すべてのテストケースが合格した場合のテスト結果出力

テスト ケースが失敗した場合、出力が表示され、どのテスト ケースが失敗したかが示されます。

すべてのテストケースが失敗した場合のテスト結果出力
すべてのテスト ケースが失敗した場合のテスト結果の出力

ソースコードの例

この記事には、チュートリアルをより明確に理解し、技術的な知識を素早く習得するのに役立つソース コードの例がいくつか含まれています。