如何在测试代码中旋转Android模拟器?

7
我想测试我的应用在横屏和竖屏模式下的不同行为。我已经有一个android.test.InstrumentationTestCase的子类,可以很好地测试我的应用在竖屏模式下的行为,但是如果我(手动)在运行测试之前将模拟器切换到横屏模式,测试就会失败。没关系 - 在横屏模式下的行为不应该通过竖屏测试 - 而且我知道如何从我的测试代码中检查方向,所以我可以避免测试失败 - 但是我想做的是(从测试代码中)将模拟器置于每个测试的正确状态。我该怎么做?
4个回答

3

2
我最终做的是将获取方向的代码从我的Activity中提取出来,形成一个OrientationGetter接口,并为Activity提供一个DefaultOrientationGetter,该Getter返回设备(或模拟器)的方向。现在,我的测试可以注入一个简单的存根OrientationGetter,该存根根据需要简单地返回纵向或横向,我可以测试我的Activity的代码而不必实际控制模拟器的状态。这很好用。

1

我没有看到任何明显有用的仿真器控制台命令。从主机上,您可以使用Xtest或一些win32代码将F11 / F12注入仿真器(并可能通过读取窗口几何形状来确定当前状态)。如果测试逻辑在仿真器中运行,则可以向某个侦听主机上端口的东西tcp,该端口从仿真器中看起来像10.0.2.2,并要求它注入该键。但这似乎不太优雅。

重新构建仿真器以添加控制台命令会更好一些。


0

您可以通过按下以下键序列 Ctrl + F12 来完成它


2
我知道Ctrl+F12和Ctrl+F11分别可以将模拟器逆时针和顺时针旋转。这是如何手动旋转模拟器的方法。我的问题是如何在我的测试代码中从代码中旋转模拟器。 - Carl Manaster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接