0
我正在觀察Android JUnit測試用例中的不尋常行爲。測試用例用於測試簡單計算器應用程序的活動狀態管理。這是我的測試案例假設要做的。Android JUnit測試框架
- 發射活動(在安裝完成)
- 獲取參考UI Elelments(在安裝完成)
- 按下按鈕上寫一句話的TextView 活動的
- 改變方向因此被重新創建的TextView的文本被清除出
- 確認TextView的是乾淨的
雖然我在模擬器看到,在步驟5,活動的TextVie w顯示空文本字段,但在Junit測試代碼中,當我執行TextView.getText()時,它將返回在更改方向之前輸入的舊值。
這是我的測試用例代碼。最後斷言應該失敗,因爲活動被重建,我不由的onSaveInstanceState()/ onRestoreInstanceState()管理活動狀態
public void testOrientationState(){
mActivity.runOnUiThread(new Runnable(){
@Override
public void run() {
keypad.get(com.example.simplecalculator.R.id.button7).performClick();
keypad.get(com.example.simplecalculator.R.id.button9).performClick();
}
});
CharSequence beforeOrientationChange = display.getText();
assertEquals(beforeOrientationChange,"79");
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
getInstrumentation().waitForIdleSync();
CharSequence afterOrientationChange= (CharSequence) ((TextView)mActivity.findViewById(com.example.simplecalculator.R.id.textView)).getText();
assertEquals(beforeOrientationChange,afterOrientationChange);
}