我在测试活动时对真实设备运行单元测试时遇到了一个小问题。
问题是当屏幕未打开时它们会失败。
这个问题有优雅的解决方案吗?除了稍微向右移动我的手臂并自行按下电源按钮。我对WakeLock或其他任何可以进入主应用程序的代码不感兴趣。
Settings|Applications|Development|Stay Awake
可以帮助(那是在电话上)?它禁用手机屏幕进入睡眠状态
实际上很简单。我所要做的就是在getWindow
上打电话给Activity
并带上一些标志来打开屏幕并解锁键盘。
public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> {
private MyActivity mActivity;
public MyActivityTest() {
super("com.example.app", MyActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mActivity = getActivity();
}
public void testMyActivity() throws InterruptedException {
mActivity.runOnUiThread(
new Runnable() {
public void run() {
mActivity.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
}
);
// Start testing
....
}
}