iOS推送通知UITesting

时间:2018-10-23 14:54:16

标签: ios testing xctest uitest

我正在创建自动化测试,并在多个设备上对其进行测试。 在iOS 10上进行测试时遇到问题。

在我的测试中,我发送了一个推送通知。它已正确显示在设备上。

我通过以下方式等待该推送的存在:

    XCUIElement *push = [XCUIElement pushNotificationWithTitle:message.title message:message.body];

if (![push waitForExistenceWithTimeout:30]) {
    XCTFail(@"Push not visible");
}

我的问题是我的“ waitForExistenceWithTimeout”方法在iOS 10上始终返回false,并且在iOS 11上完美运行。

为什么?

修改: 这是我的pushNotificationWithTitle的实现:

+ (XCUIElement *)pushNotificationWithAppName:(NSString *)appName receptionDate:(NSString *)receptionDate title:(NSString *)title message:(NSString *)message {
XCUIApplication *springboard = [XCUIApplication springboardApp];

XCUIElementQuery *elementQuery = [springboard.otherElements matchingIdentifier:@"NotificationShortLookView"];
return elementQuery[[NSString stringWithFormat:@"%@, %@, %@, %@", appName, receptionDate, title, message]];}

+ (XCUIElement *)pushNotificationWithTitle:(NSString *)title message:(NSString *)message {
return [self pushNotificationWithAppName:APP_NAME receptionDate:[XCUILocalizationHelpers localizedStringForKey:@"NOTIFICATION_BANNER_DATE_RECEPTION_TITLE"] title:title message:message];}

编辑2:这是springboardApp:

+ (XCUIApplication *)springboardApp {
return [[XCUIApplication alloc] initWithBundleIdentifier:@"com.apple.springboard"];}

0 个答案:

没有答案