TDD Swift Unit тестирует функцию без входов - PullRequest
0 голосов
/ 01 июня 2019

Я играю с юнит-тестированием в Swift.Я могу издеваться и тестировать большинство своих функций.Однако я борюсь с этим (это для викторины):

public func getQuestionSetStats() -> (numberOfQs: Int, answered: Int, totalCorrect: Int, totalWrong: Int)? {
    guard questionSet != nil && questionSet!.count > 0 else {return nil}
    let number = questionSet!.count
    let answered = questionSet!.filter{ $0.answerGiven != nil && $0.answerGiven ?? 0 >= 0 }.count
    let correct = Array ( zip(questionSet!.map{ Int( $0.question.solution) }, questionSet!.map{ $0.answerGiven }) )
    let correctAnswers = correct.filter{ $0.0 == ( ($0.1 ?? 10) + 1)}.count
    let wrong = number - correctAnswers
    return (numberOfQs: number, answered: answered, totalCorrect: correctAnswers, totalWrong: wrong)
}

Это в основном возвращает состояние моего менеджера викторин для отображения некоторым контроллером представления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...