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);
}