Я приведу два примера, которые, как мы надеемся, могут дать вам что-то, с чего можно начать издеваться над NetworkSession
.
Во-первых, вы можете добавить дополнительные свойства к вашему фиктивному классу, которые поддерживают вставку значений для тестирования различных случаев. Я покажу ситуацию с ошибками и пока вернусь.
enum MyError: Swift.Error {
case failed
}
final class NetworkSessionManagerMock : NetworkSession {
var myError: MyError?
var dataResponse: Any? // This should hopefully be typed to something
func request(
_ endpoint: Endpoint,
method: HTTPMethod,
completion: @escaping (Result<<DataResponse<Any>>, RequestError>) -> ()) { [weak self] in
if let myError = self?.myError {
// Send error with completion handler
} else if let dataResponse = self?.dataResponse {
// Send data response
}
}
}
Идея в том, что вы создаете экземпляр макета в своем тесте, а затем устанавливаете переменные по мере необходимости для проверки соответствующей части. Тогда ваш макет пройдет нормально.
Я не проверял этот код на правильность синтаксиса, поэтому дайте мне знать, если в нем есть ошибка.
Это было бы замечательной особенностью для Представлений, чтобы иметь, и необходимо отправить запрос новых функций специалистам по обслуживанию для нее. К сожалению, Вы не можете сделать этого с существующим кодом Представлений.
\What, который Вы могли сделать, тем не менее, видят, как Представления создают управление фильтром в его собственном исходном коде, и реализуйте ту функцию сами и добавьте в дополнительной проверке, чтобы видеть, существуют ли какие-либо сообщения с тем термином или нет, и не дисплей, которые называют, если нет никого.