15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
|
1 | |
Стоит ли писать функциональные и unit тесты для простого приложения?27.08.2020, 01:26. Показов 473. Ответов 10
Метки нет (Все метки)
Доброго времени суток. Заканчиваю писать один из первых учебных проектов. Он не то, чтоб сложный, поэтому возник вопрос. Имеет смысл писать модульные и функциональные тесты на приложение, или достаточно просто использовать логгирование и тестировать приложение вручную?
Могут ли грамотно написанные логи в каком-то смысле заменить unit-tests, или стоит потратить время на написание последних?
0
|
27.08.2020, 01:26 | |
Ответы с готовыми решениями:
10
Как правильно писать функциональные тесты для сервисов на scala? Как лучше всего писать Unit тесты для кода? Unit-test для простого консольного приложения Unit тесты как писать? Написал Unit тесты для алгоритма сортировки, Можно ли как-то написать эти тесты через TestCase или TestCaseSource? |
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
|
28.08.2020, 15:11 [ТС] | 4 |
Хорошо, вас понял. А как быть, если необходимо создать нового пользователя в тестовой базе данных? И при этом тестируемая функция всё, что надо, принимает из объекта request. Это ведь надо протаскивать его через бэкенды аутентификации, sessions_middleware и так далее, или вручную изменять объект request, дописывая ему request.session и т.д.? Просто тест тогда получается весьма громоздким.
0
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
|
28.08.2020, 19:00 [ТС] | 6 |
Спасибо, буду пробовать.
Добавлено через 3 часа 6 минут Еще такой вопрос: как правильно подключить тестовую базу данных для функционального теста? Тестирую с помощью Selenium-a, но через команду: Код
python3 manage.py test Как в итоге сделать так, чтобы Селениум работал с тестовой базой данных, которая в итоге также удалялась бы?
0
|
Автоматизируй это!
|
|
28.08.2020, 19:09 | 7 |
Dancing_god, ничего не понял. Селениум работает с браузером, для него пишут не юнит тесты а уже системные, уи-тесты, енд-ту-енд, то есть задействуются все уровни приложения. Обычно для таких тестов просто есть тестовый стенд где равзернута и БД тестовая и задеплоено веб-приложение, которое данные берет из этой бд. А мы говорили про юнит-тесты, это самый низкий уровень, проверка минимально возможного блока кода. Селениум это уже верх пирамиды тестирования, а юниты -основание
0
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
|
28.08.2020, 19:29 [ТС] | 8 |
Я под функциональными тестами как раз end-to-end и имел в виду. И да, понятное дело, что Selenium не используется для низкоуровневых тестов. Просто с запуском функциональных тестов, как просто скриптов, без джанговской команды test, возникали проблемы, связанные с импортом модулей из родительской директории. Поэтому временно запускаю их как unit тесты.
А на стадии разработки приложения есть варианты прописать другую базу данных для функциональных тестов и настроить ее так, чтобы она очищалась после каждого теста?
0
|
Автоматизируй это!
|
|
28.08.2020, 19:59 | 9 |
да, так и делают, обычно или пустая БД или с минимумом данных, можно после тестов запросом к бд все удалять лишнее, пред стартом что-то создавать если нужно.
0
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
|
28.08.2020, 21:44 [ТС] | 10 |
Наверное такого нет, но спрошу на всякий случай. Существует какой-нибудь хитрый способ использовать функции, работающие с дефолтной базой данных, с тестовой базой данных? Т.е. как-нибудь в файле, где содержатся тесты, выбрать вторую базу данных, прописанную в DATABASE в settings.py, и заставить тестируемые функции работать с ней, а не со стандартной.
Просто не очень хочется ради теста менять базу данных в настройках.
0
|
Автоматизируй это!
|
|
28.08.2020, 22:50 | 11 |
Dancing_god, не совсем понимаю контекст, для юнит-тестов конечно можно на лету бд создавать или вообще хранить ее в памяти, а вот если ты опять про селениум, то веб приложение перед деплоем должно же получить настройки нужной бд. Это в принципе реально, но надо будет тестирование разделить на этапы: создание бд, подмена опций в конфиге, деплой приложения, запуск тестов.
0
|
28.08.2020, 22:50 | |
28.08.2020, 22:50 | |
Помогаю со студенческими работами здесь
11
Unit тесты для сайта Модульные тесты. Unit тесты. Доработка классов Стоит ли писать Android-приложения в Eclipse? Нужны исходники простого простого приложения под Android для примера Unit тесты для методов скрипта Unity Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
|
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows
Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
|
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
|
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
|
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
|
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
|
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
|
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|