XCTWaiter.Result не показывает, в каком случае каждый результат отображается при печати XCTAssertEqual - PullRequest
0 голосов
/ 04 мая 2020

Я использую XCTWaiter для ожидания ожидания, а затем я утверждаю, что ожидание было выполнено, утверждая, что результат ожидания равен .completed, например:

let result = XCTWaiter.wait(for: [expectation], timeout: 5)
XCTAssertEqual(result, .completed)

Функционально , это работает нормально, однако, если утверждение не удается, сообщение об ошибке бесполезно не сообщает мне, какой случай является результатом.

Ошибка XCTAssertEqual: ("XCTWaiterResult") не равно (" XCTWaiterResult ")

Это неудобно для отладки. Как я могу получить сообщение об ошибке подтверждения, чтобы сообщить о случае XCTWaiter.Result?

1 Ответ

0 голосов
/ 04 мая 2020

Марка XCTWaiter.Result соответствует CustomDebugStringConvertible. Реализуя свойство debugDescription, вы можете предоставить строковую интерпретацию XCTWaiter.Result для случая, когда создается сообщение об ошибке.

extension XCTWaiter.Result: CustomDebugStringConvertible {
    public var debugDescription: String {
        switch self {
        case .completed:
            return "Completed"
        case .incorrectOrder:
            return "Incorrect Order"
        case .interrupted:
            return "Interrupted"
        case .invertedFulfillment:
            return "Inverted Fulfillment"
        case .timedOut:
            return "Timed Out"
        @unknown default:
            fatalError("Unknown XCTWaiter.Result case")
        }
    }
}

Ошибка XCTAssertEqual: ("Timed Out") не равно ("Завершено")

...