2015-11-11 9 views
2

Я пробовал все, но единственный способ, которым я мог бы получить успешный тест, - это фактически отправить уведомление в тестовую функцию, которая как бы поражает цель.Как использовать expectationForNotification

У меня есть кнопка. Когда я нажимаю кнопку, он отправляет уведомление. Как я могу использовать expectationForNotification, чтобы узнать, отправлено ли это уведомление?

func testExample() { 
    let app = XCUIApplication() 
    let button = app.buttons["Button"] 
    let expectation = expectationForNotification("TEST_NOTE", object: nil) { 
     (notification: NSNotification!) -> Bool in 

     print("SUCCESS") 
     return true 
    } 

    button.tap() 

    waitForExpectationsWithTimeout(5, handler: nil) 
} 

ответ

2

он смотрит на меня, что вам придется выполнить математическое ожидание ...

func testExample() 
{ 
    let app = XCUIApplication() 
    let button = app.buttons["Button"] 

    let expectation = expectationWithDescription("waiting for the tap") 

     expectationForNotification("TEST_NOTE", object: nil) 
     { 
     notification in 
     expectation.fulfill() 
     return true 
     } 

     button.tap() 

     waitForExpectationsWithTimeout(30) 
     { 
      error in 
      if let e = error 
      { 
       XCTFail("\(e.debugDescription)") 
      } 
     } 
}