2013-02-08 133 views
0

是否有可能擁有類似的東西?無論是與Android/Robotium測試框架或任何其他解決方案是否有可能爲Android編寫複雜的功能測試?

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()測試通過了(因爲活動不是重建)

我是新來的測試,所以也許我犯錯和試驗的目的是爲一個全新的活動實例被執行總是?

回答

0

如果您重新命名所有test_00X_METHOD方法,可能可能會出現這種情況,因爲目前它會進入總亂子,因爲「方法」前的「測試」前綴對jUnit Framework有特殊含義 - 除了所有將由您執行從testAll()中,所有的方法都會在後期單獨執行,因爲jUnit將所有帶有「test」前綴的方法作爲單獨的測試用例運行,並且應用程序甚至在這些方法之間重新啓動。所以它應該工作正常,如果你扔掉所有「測試」前綴,但保留它testAll()。而且您在test_001_Lo​​ginActivity()的開始時不需要「startActivity()」方法,因爲Activity是自動啓動的 - 哪個活動?您作爲類型參數傳遞給此類的活動:http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html

我希望這個答案對你有用。

Krzysiek, Bitbar軟件工程師

+0

對於解決方案,你的建議,我在日誌中只得到一個及格的分數 - 爲'testAll'方法。我希望所有測試都以獨立標記形式出現 –

+1

hmmm,因此您嘗試執行的操作不適合jUnit體系結構,因爲它會分開運行所有'測試...'方法並顯示結果。當然,testAll中的'test''方法也會運行,但是由您手動執行,它們的結果將與testAll相同,然後testAll內部的這些方法也將獨立運行。那麼也許可以用assert替代「test ...」前綴?結果將成爲testAll的一個,但如果某物失敗,您將知道究竟在哪裏......或者可能有解決方案,但我不知道它...... – Krzysiek

相關問題