2017-02-21 72 views
0

我創建了一個小應用程序來檢查使用espresso進行的測試。當在一個測試類中運行多個測試時,我觀察到該活動正在暫停併爲每個測試重新創建。我不認爲這是正常的行爲。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很清楚:

此規則提供單個活動的功能測試。被測試的活動將在用Test註釋的每個測試之前以及Before用Before註釋之前啓動。測試完成後,方法將被終止,並使用After完成註釋。在測試期間,您將能夠直接操作您的活動。

+0

謝謝。所以,如果我想對整個應用程序進行功能測試,請檢查UI流程,那麼您建議的最佳方法是什麼? –

相關問題