如何从测试代码中旋转android模拟器?

时间:2010-12-09 17:57:08

标签: android unit-testing

我想在横向和纵向模式下测试我的应用的不同行为。我有一个android.test.InstrumentationTestCase的子类,可以很好地测试我的应用程序在纵向模式下的行为,但如果我(手动)在运行测试之前将模拟器置于格局中,它就会失败。这很好 - 横向中的行为不应该通过肖像测试 - 我知道如何检查我的测试代码的方向,所以我可以避免测试失败 - 但我想要做的是(来自测试代码)将模拟器置于每个测试的正确状态。我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

我最后要做的是在我的Activity中提取一些代码,这些代码获取OrientationGetter接口的方向,并为Activity提供一个返回设备(或模拟器)方向的DefaultOrientationGetter。现在我的测试可以注入一个简单的存根OrientationGetter,根据需要简单地返回肖像或横向,我可以测试我的Activity的代码,而无需实际控制模拟器的状态。它工作正常。

答案 2 :(得分:1)

我没有看到像模拟器控制台命令那样有明显用处的东西。从主机,您可以使用Xtest或一些win32代码将F11 / F12注入仿真器(并且可能通过读取窗口几何来确定当前状态)。如果测试逻辑在模拟器中运行,您可以输出监听主机上端口的内容,该端口将从模拟器显示为10.0.2.2并要求它注入该密钥。但这似乎不够优雅。

重建模拟器以添加控制台命令会好一点。

答案 3 :(得分:0)

您可以按以下按键顺序Ctrl + F12

来执行此操作