Как написать модульный тест для UserDefaults - PullRequest
0 голосов
/ 22 января 2020

У меня есть 2 функции, где одна в основном получает строку в пользовательских значениях по умолчанию, а другая записывает строку в пользовательских значениях по умолчанию. Я не могу понять, что я должен делать модульный тест или нет? и я довольно новичок в концепции модульного тестирования.

Я искал inte rnet для тестирования пользовательских настроек по умолчанию, но мне посоветовали в конце смоделировать тест.

Мой вопрос is Если есть способ проверить пользовательские настройки по умолчанию, каков наилучший способ сделать это?

Константы и структуры

let defaults = UserDefaults.standard
let defaultinformation = "ABCDEFG"

struct Keys {
    static let Information = "Information"
}

Функция, где сохраняется информация

func SetDefaultInformation() {
    defaults.set(defaultinformation, forKey: Keys.Information)

}

Функция, где извлекается информация

func checkForInformation() -> String {
    let Information = defaults.value(forKey: Keys.Information) as? String ?? ""
    return Information
}

Заранее спасибо

1 Ответ

0 голосов
/ 22 января 2020

Должен ли я выполнить модульный тест или нет

Нет. Вы знаете что UserDefaults делает, и вы знаете как это работает и что это работает. Смешно тестировать код Apple. Тестирование defaults.set столь же глупо; вы точно знаете, что он делает, и вы знаете, что он это сделает.

То, что вы хотите проверить, это ваш код: не ваш поиск из UserDefaults как таковой, а ваш ответ к этому поиску. Дайте себе методы, чтобы вы могли видеть, что вы делаете, когда information является строкой, и что вы делаете, когда information равен nil. Как вам уже сказали, тривиальный макет может предоставить серверную часть, играя роль UserDefaults и возвращая различные результаты. Только не допускайте, чтобы ваши тесты включали real UserDefaults.

...