Добрый день, задался вопросом тестирования, и в этом плане я совсем зеленый, даже не родился еще. Вопрос в следующем, при тестировании отдельных функций, блоков, к тестирующим функция приводятся данные, или все приложение приводить к необходимому виду (заполнять данными само приложение, а не подавать на вход готовые данные.), как лучше?
Зависит от цели тестирования и что тестируем
Если тестируем отдельную функцию, то нет смысла заполнять всё приложение данными, которые тестируемая функция не использует. (Юнит тестирование)
И на оборот, нет смысла тестировать обработку ошибки запроса сети и при этом подсовывать заведомо правильные данные (Функциональное тестирование)
vitaly_74, Возможно я плохо сформулировал ответ, ... но вы определитесь с целью тестирования, что вы планируете тестировать, например:
Цель: Получить ожидаемый результат от функции с ожидаемыми данными
Цель: Получить ожидаемый результат от функции при ошибке получения сетевых данных
Цель: Проверить логику обработки входящих данных и получить ожидаемый результат от функции
Цели, конечно, надуманные, но что значит "данные одни и теже или каждый раз разные?" для меня загадка.
// Передаёте параметры, которые функция принимает (без фанатизма)
func() === 'guest' // ожидаемый результат, всё ок
func(true) === 'user' // тоже ожидаемый результат
func(1) === 'guest' // А тут тест упал, т.к. в условии 1 != true, даст ложь в некоторых ЯП и результат будет 'user'
Сами данные должны быть ожидаемые в функции. Проверка состоит в том чтобы проверить результат функции, но никак не проверить сами входящие данные