Как установить значение partialErrorsByItemID на CKError для тестирования? - PullRequest
0 голосов
/ 29 мая 2020

Я хочу протестировать свою обработку ошибок для класса, обрабатывающего CloudKit Operations. Я хотел бы иметь возможность построить CKError с определенной частичной ошибкой, чтобы я мог передать его в тестируемый блок завершения операции.

Я могу запустить CKError с помощью .partialError код, но, поскольку словарь partialErrorsByItemID предназначен только для чтения, я не могу установить частичные ошибки.

let error = CKError(.partialError)
error.partialErrorsByItemID = ["TestItemID": CKError(.zoneNotFound)] // => Cannot assign to property: 'partialErrorsByItemID' is a get-only property

Есть ли способ контролировать значение partialErrorsByItemID?

1 Ответ

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

Вы можете присвоить значение partialErrorsByItemID, указав соответствующую пару ключ / значение в userInfo Словаре и используя инициализатор init(_:userInfo:):

let error = CKError(.partialFailure, userInfo: [
    CKPartialErrorsByItemIDKey: ["TestItemID": CKError(.zoneNotFound)]
])
...