0

このようなものを持つことは可能ですか?Android/Robotium テスト フレームワークまたはその他のソリューションを使用

public void testAll() throws Exception {
    test_001_LoginActivity();
    test_002_MainActivity();
}

public void test_001_LoginActivity() throws Exception {
    startActivity();
    test_001_LoginActivity_001_emptyUsername();
    test_001_LoginActivity_002_emptyPassword();
    test_001_LoginActivity_003_incorrectValues();
    test_001_LoginActivity_004_correctValues(); // MainActivity is opened on success
}

public void test_002_MainActivity() throws Exception {
    test_002_MainActivity_001_profile();
    test_002_MainActivity_002_list();
    test_002_MainActivity_003_logout();
}

アイデアは、アクティビティを再作成せずに、対応するすべてのアクティビティ テストを保持test_001_LoginActivity()および含めることです。test_002_MainActivity()結果を次のように表示するには:

test_001_LoginActivity() - OK
--->test_001_LoginActivity_001_emptyUsername() - OK
--->test_001_LoginActivity_002_emptyPassword() - OK
--->test_001_LoginActivity_003_incorrectValues() - OK
--->test_001_LoginActivity_004_correctValues() - OK

test_002_MainActivity() - NOK
--->test_002_MainActivity_001_profile() - OK
--->test_002_MainActivity_002_list() - NOK
--->test_002_MainActivity_003_logout() - OK

これは、 のすべてのテストにLoginActivity合格したことを意味します。test_002_MainActivity_002_list()のテストに失敗しましMainActivityたが、test_002_MainActivity_003_logout()テストに合格しました (アクティビティが再作成されなかったため)

私はテストに慣れていないので、間違っている可能性があり、テストは常に新しいアクティビティ インスタンスに対して実行されることを意図していますか?

4

1 に答える 1

0

すべての test_00X_METHOD メソッドの名前を変更すると、メソッドの前の「テスト」プレフィックスが jUnit Framework にとって特別な意味を持つため、現在は完全に混乱するため、あなたがしようとしていることが可能になる可能性があります-さらに、すべてが testAll() から実行されますまた、jUnit が個別のテスト ケースとして「test」プレフィックスを持つすべてのメソッドを実行し、アプリケーションがそれらのメソッド間で再起動されるため、すべてのメソッドは後で個別に実行されます。したがって、すべての「テスト」プレフィックスを破棄して、testAll() 用に保持すると、正常に動作するはずです。また、アクティビティは自動的に開始されるため、test_001_Lo​​ginActivity() の先頭に「startActivity()」メソッドは必要ありません - どのアクティビティですか? タイプ パラメータとしてこのクラスに渡したアクティビティ: http://developer.android.

この回答がお役に立てば幸いです。

Krzysiek、Bitbar ソフトウェア エンジニア

于 2013-02-08T12:51:00.023 に答える