Я перевожу некоторые модульные тесты с XCTest на Swift Testing и ищу способ намеренно провалить тест, например:
Код: Выделить всё
if let event = SentryManager.events.first, let message = event.message {
XCTAssertEqual(event.formatted, "hello")
} else {
XCTFail()
}
Это я использую в основном при развертывании значений во время теста, и до сих пор я не нашел команды «провалить тест», что делает перевод этих модульных тестов немного раздражающим.
Несовершенные альтернативы:
Использование необязательной развертки, например
Код: Выделить всё
#expect(SentryManager.events.first?.message?.formatted == "hello")
приводит к сравнению между Optional("hello") и "hello", поэтому не будет работать.
Принудительное развертывание, например
Код: Выделить всё
#expect(SentryManager.events.first!.message!.formatted == "hello")
здесь произойдет ошибка, если проверяемая строка неверна. Однако я хотел бы избежать здесь принудительного развертывания, несмотря на то, что это модульный тест и он более приемлем, чем обычно, что потребует использования некоторого игнорирования Swiftlint, как только линтер начнет жаловаться.
Есть ли способ целенаправленно провалить тест с помощью новой среды Swift Testing?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... ft-testing