2017-02-14 35 views
0

我是新來的自動化測試,並使用espresso來測試我的android應用程序。在Android上的多個咖啡測試之間切換

的問題是,我必須根據一定的條件下多種動態的觀點:

我的用戶有一個布爾屬性,讓我們把它稱爲「isPremium」

當我點擊一個按鈕,我的用戶會被重定向到FragmentA if isPremuim == true,否則他被重定向到FragmentB。

現在我的測試中,我有

@Test public void testFragmentA(); 

@Test public void testFragmentB(); 

但是當我運行基於我的數據,我的測試強行兩個測試之一失敗

所以我應該做一個測試兩個片段像

private void testFragmentA(); 
private void testFragmentB(); 

@Test 
public void myGlobalTest { 

if(user.isPremium) testFragmentA(); 
else testFragmentB(); 
} 

是這讓我測試的正確方法?或者還有另一種更好的方法,因爲我很不相信這種方法。

回答

1

如果您在每次測試開始時爲溢價設置值(對於testFragmentA爲true,對於testFragmentB爲false),那將是最好的。這樣你就會知道你期待什麼以及每個片段依賴於什麼。 另外,如果用戶是某個全局變量,則應該將其狀態保存在@Before中,並在@After方法中將其恢復。

boolean isPremium; 

@Before 
public void init() { 
    isPremium = User.isPremium(); 
} 

@Test 
public void testFragmentA(){ 
    User.setPremium(true); 
    // test fragment A 
} 

@Test 
public void testFragmentB(){ 
    User.setPremium(false); 
    // test fragment B 
} 

@After 
public void restore() { 
    User.setPremium(isPremium); 
}