我想在横向和纵向模式下测试我的应用的不同行为。我有一个android.test.InstrumentationTestCase的子类,可以很好地测试我的应用程序在纵向模式下的行为,但如果我(手动)在运行测试之前将模拟器置于格局中,它就会失败。这很好 - 横向中的行为不应该通过肖像测试 - 我知道如何检查我的测试代码的方向,所以我可以避免测试失败 - 但我想要做的是(来自测试代码)将模拟器置于每个测试的正确状态。我怎么能这样做?
答案 0 :(得分:3)
如果您要旋转活动,则需要使用此功能:http://developer.android.com/reference/android/app/Activity.html#setRequestedOrientation(int)
答案 1 :(得分:2)
我最后要做的是在我的Activity中提取一些代码,这些代码获取OrientationGetter接口的方向,并为Activity提供一个返回设备(或模拟器)方向的DefaultOrientationGetter。现在我的测试可以注入一个简单的存根OrientationGetter,根据需要简单地返回肖像或横向,我可以测试我的Activity的代码,而无需实际控制模拟器的状态。它工作正常。
答案 2 :(得分:1)
我没有看到像模拟器控制台命令那样有明显用处的东西。从主机,您可以使用Xtest或一些win32代码将F11 / F12注入仿真器(并且可能通过读取窗口几何来确定当前状态)。如果测试逻辑在模拟器中运行,您可以输出监听主机上端口的内容,该端口将从模拟器显示为10.0.2.2并要求它注入该密钥。但这似乎不够优雅。
重建模拟器以添加控制台命令会好一点。
答案 3 :(得分:0)
您可以按以下按键顺序Ctrl + F12
来执行此操作