Мой тест продолжает давать сбой, это AssertionFailure в onChange. Но это ожидаемо. метод onChange должен получить снимок, соответствующий протоколу. Есть ли способ сохранить этот тест, сохраняя при этом AssertionFailure в onChange, который срабатывает в операторе защиты, если он не соответствует протоколу?
func testOnChangeWithInvalidValueShouldNotUpdateSnapshot() {
let listener = SomeListenerFake()
let expectation = XCTestExpectation(description: "Snapshot updated and listener notified")
expectation.isInverted = true
fakeListener.onUpdatedModelList = {
expectation.fulfill()
}
guard let delegate = someObject as? SomeDelegate else {
XCTFail("someObject is not a SomeDelegate")
return
}
someObject?.set(listener: listener)
delegate.onChange(withId: "invalid value")
wait(for: [expectation], timeout: 1.0)
XCTAssertNil(listener.capturedValue)
XCTAssertFalse(listener.methodCalled)
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-to-crash