我尝试为基于位置的应用编写UIAutomation测试。这是我的代码:
var target = UIATarget.localTarget();
var mainWindow = target.frontMostApp().mainWindow();
// speed is in meters/sec
var points = [
{"location":{"latitude":46.783959176435,"longitude":23.542576152853}, "options":{"speed":32.33869934082}},
{"location":{"latitude":46.784235069873,"longitude":23.542993452429}, "options":{"speed":33.44660949707}},
{"location":{"latitude":46.784323173489,"longitude":23.543161503691}, "options":{"speed":33.76908493042}},
{"location":{"latitude":46.784514430638,"longitude":23.54344429169}, "options":{"speed":34.434867858887}},
{"location":{"latitude":46.784609053263,"longitude":23.543600872392}, "options":{"speed":34.673755645752}},
{"location":{"latitude":46.784701914083,"longitude":23.54376055256}, "options":{"speed":34.920608520508}},
{"location":{"latitude":46.784792299278,"longitude":23.543917345257}, "options":{"speed":34.939456939697}},
{"location":{"latitude":46.784869569202,"longitude":23.54409146343}, "options":{"speed":34.837844848633}},
{"location":{"latitude":46.784959115698,"longitude":23.544272081608}, "options":{"speed":34.80908203125}},
{"location":{"latitude":46.785085476228,"longitude":23.544603009802}, "options":{"speed":34.722270965576}},
{"location":{"latitude":46.785085476228,"longitude":23.544603009802}, "options":{"speed":0.0}}
];
var driveDetectionStarted;
for (var i = 0; i < points.length; i++){
target.setLocationWithOptions(points[i].location,points[i].options); // send location update
target.delay(0.2); // sleep until next location update
}
target.delay(1);
if (mainWindow.staticTexts()[0].value() == "Updates Received") {
driveDetectionStarted = true;
}
if (driveDetectionStarted) {
UIALogger.logPass("Location updates received as expected.");
} else {
UIALogger.logFail("Location updates logic failed.");
}
应用程序必须接收位置更新,如果一切正常,则会显示带有“已接收更新”文本的UILabel。此测试适用于iOS 6,但我在iOS 7上没有收到位置更新。我在设备上试过,因为target.delay(x)方法在带有新xcode的模拟器中不起作用。 (我已经测试了,它在旧的xcode版本中工作。)
任何人都可以帮我在iOS 7上运行测试吗?有没有人面临同样的问题? (我计划编写更复杂的测试,但如果我没有收到位置更新,那么我就不能继续了。)
谢谢
答案 0 :(得分:2)
我在这里遇到同样的问题。 setLocation()和setLocationWithOptions()方法在iOS 7上不起作用。在文档中,缺少UIATarget的所有方法(在iOS 7之前可用),并且修订历史记录中没有这些更改的条目。