Я проверяю обработку ошибок для SFSpeechRecognizer
. Я не могу заставить функцию выдать ошибку, используя XCTAssertThrowsError()
.
Создание SFSpeechRecognizer
вернет объект или nil
, если локали нет.
public convenience init?() // Returns speech recognizer with user's current locale, or nil if is not supported
public init?(locale: Locale) // returns nil if the locale is not supported
func createSpeechRecognization(locale : Locale) throws -> SFSpeechRecognizer {
guard let speechRecognizer = SFSpeechRecognizer(locale: locale) else {
throw SpeechToTextError.speechRecognizerIsNil
}
return speechRecognizer
}
Вот функция модульного теста, в которой я пытаюсь бросить:
func testCreateSpeechToTextAudioSessionNotNotAvailable() {
XCTAssertThrowsError(try sut.createSpeechRecognization(locale: Locale.current)) {error in
XCTAssertEqual(error as? SpeechToTextError, SpeechToTextError.speechRecognizerIsNil)
}
}
Проведено модульное тестирование из-за ошибки:
Ошибка XCTAssertThrowsError: ошибка не возникла.
Я не уверен, почему это происходит. Есть предложения?