Как получить возвращаемое значение функции, которая может генерировать тестируемое с помощью XCTAssertNoThrow (...) - PullRequest
0 голосов
/ 01 октября 2018

Я хочу получить возвращаемое значение функции, которую я тестирую для последующего теста.Функция, если она определена следующим образом:

func apple(banana: Banana) throws -> Cherry { ... }

Я могу проверить, что он выбрасывает, когда должен:

XCTAssertThrowsError(try apple(banana: badBanana), "Didn't throw")

Я могу проверитьэто не бросает, когда это не должно:

XCTAssertNoThrow(try apple(banana: goodBanana), "Did throw")

Я надеялся сделать это:

XCTAssertNoThrow(let cherry = try apple(banana: goodBanana), "Did throw")

, а затемпроверка cherry - это то, что я ожидал, но я получаю следующую ошибку: Consecutive statements on a line must be separated by ';'...

Как я могу получить возвращенное значение (объект типа Cherry в данном случае) из XCTAssertNoThrowтестовое задание?Или есть лучший подход, который я пропускаю?

Большое спасибо

1 Ответ

0 голосов
/ 02 октября 2018

Просто вызовите функцию и подтвердите возвращаемое значение:

func test_apple_withGoodBanana_shouldReturnBingCherry() throws {
    let result = try apple(banana: goodBanana)

    XCTAssertEqual(result, .bing)
}

Отметив сам метод теста как throws, мы можем вызвать try без ? или !.Если он выбрасывает, тест не пройден.

...