Обработка разрешений на уведомления во время модульного тестирования - PullRequest
0 голосов
/ 24 мая 2019

Я пишу юнит-тесты для приложения, которое может отправлять своим пользователям локальные уведомления.Я использую UNNotificationCenter для обработки доставки каждого уведомления.Мои тесты написаны с использованием expectations.

Один из моих модульных тестов выглядит следующим образом:

func testNotificationDelivery() {
    // setup expectation for asynchronous block of code
    let expectation = self.expectation(description: "notification delivery")
    var deliveredNotifications: [UNNotification]?

    // create a notification that is set to trigger in 1 second
    let mockNotification = LocalNotification(withID: "notificationID", 
                                             body: "notificationBody", 
                                             toTriggerInSeconds: 1)

    mockLocalNotificationManager.schedule(notifications: mockNotification)

    UNUserNotificationCenter.current().getDeliveredNotifications {
        deliveredNotifications = $0
        expectation.fulfill()
    }

    waitForExpectations(timeout: 2, handler: nil)

    XCTAssertEqual(deliveredNotifications?.count, 1, "Notification delivered successfully")
}

... и не проходит, потому что deliveredNotifications?.count это 0 вместо 1.Существует большая вероятность того, что уведомление не было доставлено, поскольку я не обрабатываю разрешения уведомлений явно в модульном тесте.Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...