2013-12-16 114 views
0

我想寫一個測試課,我必須測試點擊選項菜單項(我有3項在選項菜單中)。所以點擊顯示列表視圖的選項菜單項和我從SD卡檢索的數據。Robotium測試選項菜單項點擊

如果發生運行時異常,應用程序應該會崩潰。

請幫助我一些代碼片段/示例。

這是我的代碼,但它不工作。

private Solo solo; 

@SuppressWarnings("deprecation") 
public Mytest(
    super("com.attt.ui",Activity.class); 
} 

@Override 
protected void setUp() throws Exception { 
    super.setUp(); 
    solo = new Solo(getInstrumentation(), getActivity()); 
} 

public void TestOptionsmenuItemclick() { 
    solo.sendKey(Solo.MENU); 
    solo.sendKey(KeyEvent.KEYCODE_MENU); 
    solo.clickOnMenuItem("view"); 
    solo.assertCurrentActivity("hai", getName()); 

} 

@Override 
public void tearDown() throws Exception { 
    solo.finishOpenedActivities(); 
} 

    } 

幫助總是感激!

感謝

+0

你是什麼意思「它不工作」?有一些例外嗎?如果是這樣的調用堆棧是什麼? –

+1

@Dave C,運行應用程序時顯示錯誤TestContentManagement]安裝錯誤:INSTALL_FAILED_MISSING_SHARED_LIBRARY – Randroid

+0

使用真實設備或lanuch模擬器與谷歌api – maszter

回答

4

當然這是行不通的,因爲它不是C# - 測試方法應以「test」開始。順便提一下:

solo.sendKey(Solo.MENU); 
solo.sendKey(KeyEvent.KEYCODE_MENU); 
solo.clickOnMenuItem("Review"); 

也沒有意義,因爲clickOnMenuItem打開菜單並單擊正確的文本。

您的測試方法應該是這樣的:

public void testOptionsmenuItemclick() { 
    solo.clickOnMenuItem("Review"); 
    solo.sleep(1000); // give it time to change activity 
    solo.assertCurrentActivity("some message", SomeActivity.class); 
} 
+1

你可能想編輯你的答案從「TestOptionsmenuItemclick」到「testOptionsmenuItemclick」,我會這樣做但它不會讓我作爲編輯太小(但我認爲你會同意重要的! –

1

您應該更新robotium的最新版本,以解決這個問題。

3

我解決了這一點:

solo.clickOnView(solo.getView(R.id.menu_item_id));