2015-08-19 72 views
1

我想從Android APP中的UI自動化測試開始。我選擇了espresso FW,我想問一下:Android:Espresso UI測試,測試類結構的正確方法是什麼?

什麼是測試類的正確結構?這意味着,我應該爲每個活動創建一個新的測試類並批量運行,或者我應該在整個應用程序的某些場景中測試類?

我該如何在包中同時運行所有測試?因爲現在我必須右鍵單擊測試類併爲每個測試手動選擇運行測試類。

感謝您的任何建議。

注:

@RunWith(AndroidJUnit4.class) 
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { 

    private MainActivity mActivity; 

    public MainActivityTest() { 
     super(MainActivity.class); 
    } 

    @Before 
    public void setUp() throws Exception { 
     super.setUp(); 
     injectInstrumentation(InstrumentationRegistry.getInstrumentation()); 
     mActivity = getActivity(); 
    } 

    @Test 
    public void buttonShouldUpdateText(){ 
     onView(withId(R.id.goToSecondActivityBtn)).perform(click()); 
     onView(withId(R.id.text1SecondView)).check(matches(withText("Hello world!"))); 
     onView(withId(R.id.txtFieldOne)).perform(typeText("TEST")); 
    } 

} 

但是,如果我addded第二種方法爲類,這是處理的第二個活動我失敗了一些互動:

非常簡單的場景,我沒有通過這樣的例子有這個特例。

回答

0

要運行所有測試(假設您有Gradle配置),請使用Gradle任務connectedCheck

在Android Studio中,您可以從任務的gradle列表中右側面板上,並在命令行中選擇:

./gradlew connectedCheck 

至於測試結構,假設在你的例子測試類,每一個@Test方法重新啓動您的活動(在MainActivity示例中)。如果你只想測試第二個Activity,你應該創建一個新的測試類,即使它只是以一種更清晰的方式組織測試用例。

對於使用咖啡更先進的測試架構我推薦這篇文章: https://medium.com/@neoranga55/the-evolution-journey-of-android-gui-testing-f65005f7ced8

和演示代碼: https://github.com/neoranga55/CleanGUITestArchitecture

相關問題