Как предотвратить сетевые запросы в режиме юнит-теста? - PullRequest
0 голосов
/ 06 февраля 2020

Речь не идет о насмешках по сетевым запросам. Поскольку структура модульного тестирования фактически запускает приложение в начале модульных тестов, список, который я показываю после запуска, вызывает сетевой запрос. Поэтому я хочу запретить приложению совершать эти регулярные сетевые вызовы после запуска, когда приложение находится в режиме модульного тестирования.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Наконец-то я выбрал чистое и простое решение: установив аргумент запуска "-isInTestMode" в схеме "Тест" и проверив его с помощью приведенной ниже глобальной функции:

enter image description here

func isRunningTests: Bool {
    return UserDefaults.standard.bool(forKey: "isInTestMode")
}
0 голосов
/ 06 февраля 2020

Вы можете проверить, работает ли приложение с тестом. Вот расширение и пример для вас.

extension Thread {
  var isRunningXCTest: Bool {
    for key in self.threadDictionary.allKeys {
      guard let keyAsString = key as? String else {
        continue
      }

      if keyAsString.split(separator: ".").contains("xctest") {
        return true
      }
    }
    return false
  }
}

И вот как вы его используете:

if Thread.current.isRunningXCTest {
  // test code goes here
  // prevent from requests.
} else {
  // other code goes here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...