Нужно ли тестировать графический интерфейс при использовании правильной абстракции? - PullRequest
1 голос
/ 13 сентября 2010

Имея хороший шаблон проектирования, такой как MVP , MVC и т. Д., Мы стремимся убрать всю логику из GUI. Это оставляет нас с легковесным графическим интерфейсом, который в идеале просто должен «привязать» свои кнопки и поля к свойствам в некотором слое бизнес-логики. Это отличный подход, так как этот слой будет свободен от графического интерфейса, и мы можем легко написать для него модульные тесты.

Мой вопрос: достаточно ли этого? Или мы все еще должны тестировать слой GUI?

Ответы [ 2 ]

4 голосов
/ 13 сентября 2010

ИМХО, если вы удалите всю логику из GUI, вам не нужно проверять ее автоматически. Конечно, вам все равно нужно запустить его, чтобы увидеть, выглядит ли он так:)

Речь идет о модульных тестах. Для интеграционных тестов все еще хорошо тестировать все, например, Селеном, если возможно.

1 голос
/ 13 сентября 2010

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

Большую часть времени интеграционные тесты начинаются с уровня пользовательского интерфейса, и мы заканчиваем тестирование большого количества уровня пользовательского интерфейса и в этих сценариях. Однажды я прочитал комментарий от кого-то о модульном тестировании, что вам не нужно писать тесты для кода, который может быть легко взломан, например, методы getter / setters могут быть легко нарушены (например, getter возвращает значение, которое он должен делать, и мы может легко сломать его, не возвращая значение), поэтому мы не заканчиваем писать модульные тесты для геттера и сеттера, если в него не встроена какая-то логика (в этом случае это на самом деле не геттер и сеттеры).

Так что, если GUI полностью тупой и в нем есть только привязки, то модульные тесты не требуются.

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