2017-02-21 12 views
0

エスプレッソを使用してテストを確認するための小さなアプリケーションが作成されました。テストクラスで複数のテストを実行している間に、アクティビティがテストごとに一時停止して再作成されることがわかりました。私はそれが普通の行動だとは思わない。ここでAndroid - Espresso:各テストでアクティビティを再作成する

は、テストクラスのための私のコードです:このほかに

@RunWith(AndroidJUnit4.class) 
@LargeTest 
@FixMethodOrder(MethodSorters.NAME_ASCENDING) 

public class MyTestClass { 

@Rule 
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class); 

@Before 
public void beforeTest(){ 
    // Called before each test 
} 

@After 
public void afterTest(){ 
    // Called after each test 
} 

@Test 
public void a_clickButton() { 
    Log.d("robotarch", ">>>>>>> a_clickButton"); 
} 

@Test 
public void b_enterAndClick(){ 
    Log.d("robotarch", ">>>>>>> b_enterAndClick"); 
} 


} 

、私はまた、すべての私の活動のライフサイクルメソッドにログを追加しました。ここで

は、出力の順序である私が取得しています:

oncreate 
onstart 
onresume 
onPostresume 
>>>>>>> b_enterAndClick 
onpause 
onresume 
onPostresume 
onpause 
oncreate 
onstart 
onresume 
onPostresume 
>>>>>>> a_clickButton 
onStop 
ondestroy 
onpause 
onStop 
ondestroy 

私はrobotiumで同じアプリケーションをチェックします。そのような行動を示していませんでした。誰かがこのような行動の背後にある理由を説明できますか?私は何か間違っているのですか?

答えて

1

はい。 javadoc of ActivityTestRuleはそれについてかなり明確です:

このルールは、1つのアクティビティの機能テストを提供します。テスト中のアクティビティは、Testでアノテーションされた各テストの前に、Beforeでアノテートされたメソッドの前に起動されます。テストが完了し、Afterで注釈が付けられたメソッドが終了した後で終了します。テスト期間中は、アクティビティを直接操作することができます。

+0

ありがとうございました。ですから、アプリケーション全体の機能テストを行い、UIの流れをチェックしたい場合、あなたが提案する最良のアプローチは何ですか? –

関連する問題