Как правильно тестировать готовое pyqt desktop приложение?
Имеется готовое pyqt приложение. Необходимо покрыть приложение тестами по максимуму. первое что приходит на ум использовать pytest-qt: вызывать главное окно приложения, эмулироваь нажатия кнопок и анализировать результаты.
Есть вариант тестировать только бизнес-логику, а все, что относится к UI части мокировать.
Какой подход верный с точки зрения минимизации проблем в дальнейшем при развитии приложения?
Мне необходимо написать тесты для десктоп приложения. Приложение содержит UI и бизнес-логику. Я могу написать тесты, которые будут тестировать приложение, эмулируя действия пользователей (т.е вызывать окна, нажимать кнопки, заполнять поля и пр.)
Меня интересует общая практика данного вопроса. Возможно, более правильный подход - это писать unit-тесты для каждой функции? Но тогда придется сильно заморачиваться с мокированием, так как функцкии бизнес-логики имеют сильные зависимости в том числе и с ui.
TigerSHARC, в идеале нужно писать юнит тесты. Если с ними все хорошо, то автотесты гуя могут и не понадобиться (а end2end сценарии проще проверить вручную).
Но обычно пишут и те, и другие - и юнит, и для гуя. Вторые более "хрупкие", они медленные и дольше разрабатываются, поэтому стараются минимизировать их количество.
Если в данном случае моки делать сложнее, чем пилить тесты гуя - пишите тесты гуя. Это не best practices, но если нет другого варианта, то лучше, чем ничего.
функцкии бизнес-логики имеют сильные зависимости в том числе и с ui
жаль. Это может говорить о плохой архитектуре приложения, но что есть, то есть.