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

Car*_*ter 7 android unit-testing

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

Car*_*ter 2

我最终要做的是将 Activity 中获取方向的代码提取到 OrientationGetter 接口中,并为 Activity 提供返回设备(或模拟器)方向的 DefaultOrientationGetter。现在,我的测试可以注入一个愚蠢的存根 OrientationGetter,它只需根据需要返回纵向或横向,并且我可以测试我的 Activity 的代码,而无需实际控制模拟器的状态。效果很好。