Найти - Пользователи
Полная версия: Начало учебного проекта. Выбор библиотеки GUI
Начало » GUI » Начало учебного проекта. Выбор библиотеки GUI
1 2
softland
Тесты это замечательно, но пока я не представляю как тестить UI
Хотя я вообще не представляю как удобно тестировать код.
Поскольку тесты на то, что понятно как тестить, не интересно тестить.
А то, что нужно тестировать, я не представляю как тестировать от слова совсем.
И что-бы не быть голословным.
Как протестировать функцию setImage
    def setImage(self):
fileName, _ = QtWidgets.QFileDialog.getOpenFileName(None, "Select image", "", "Image files (*.png *.jpg, *.jpeg, *.bmp)")
if fileName:
bitmap = QtGui.QPixmap(fileName)
bitmap = bitmap.scaled(self.lblImage.width(), self.lblImage.height(), QtCore.Qt.keepAspectRatio)
self.lblImage.setPixmap(bitmap)
self.lblImage.setAlignment(QtCore.Qt.AlignCenter)
как ошибку в “Qt.keepAspectRatio” можно обнаружить НЕ “руками”, не покликав в диалоге выбора файла… я не представляю

Огромное спасибо за диалог.
Для меня всякий раз, крайне тяжелым является момент вхождения в новую систему. Поскольку всё работает не так, если вообще работает. Куда смотреть не понятно, что нажимать не ясно.
Rodegast
> Емасs сам предложит список параметров, методов, констант - среди которых будет KeepAspectRatio?

Python это динамический язык с динамической типизацией. По этому корректное автодополнение тебе ни одна IDE не предложит.

> Я правильно понимаю, перед запуском скрипта он ВЕСЬ будет автоматически проверен на корректность…

Для этого есть утилиты статического анализа кода, например https://pypi.org/project/pyflakes/ но и они не панацея.
py.user.next
softland
как ошибку в “Qt.keepAspectRatio” можно обнаружить НЕ “руками”, не покликав в диалоге выбора файла
Надо это окно диалога QtWidgets.QFileDialog.getOpenFileName() заменить на мок-объект и вернуть из него типа картинку. Тогда не надо будет выбирать ничего руками, тесты как будто выберут картинку через псевдо-диалог.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB