如何在单元测试期间打开屏幕?

时间:2011-11-25 08:12:21

标签: android junit

在测试活动时,我遇到了针对真实设备运行单元测试的小问题。

问题是当屏幕未开启时它们会失败。

这个问题有优雅的解决方案吗?除了稍微向右移动我的手臂并自行按下电源按钮。我对WakeLock或任何其他代码都不感兴趣。

2 个答案:

答案 0 :(得分:3)

Settings|Applications|Development|Stay Awake可以提供帮助(手机上有)吗?它禁用手机屏幕进入睡眠状态

答案 1 :(得分:3)

实际上非常简单。我所要做的只是在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 
        ....
    }
}