2012-06-12 2 views
1

В проекте с открытым исходным кодом JChemPaint, например, GUI тестируется (используя фреймворк FEST), собирая около десятка отдельных тестов каждый в несколько файлов Java. Апплет запускается только один раз для каждого файла, и в цепочке выполняется несколько независимых тестов.Должен ли я настраивать тесты GUI или запускать апплет заново каждый раз?

Я хотел бы знать, если это хорошая практика. Конечно, запуск каждый раз будет стоить времени. Я вижу, однако, проблемы с побочными эффектами предыдущих действий и возможные исключения, но я не эксперт. Итак, хорошая практика - поставить несколько тестов в один запуск апплета?

(я смотрю также для сбора лучших практик для тестирования графического интерфейса пользователя, но не могу поставить такой вопрос, подсказки приветствуются, тем не менее.)

+1

* «Я вижу, однако, проблемы с побочными эффектами предыдущих действий и возможных исключений» * Хорошо, если вы успешно выполняете эту комбинацию, это то, что вы тестируете, это имеет смысл. –

+0

так, это все так же хорошо, как документы: – rwst

ответ

2

Я обеспокоен неудобным разделение между этими двумя top-level containers :

org.openscience.jchempaint.application.JChemPaint org.openscience.jchempaint.applet.JChemPaintAbstractApplet.

После беглого чтения я неохотно критикую; но рефакторинг содержимого может ограничить объем дублирования тестирования. В этом очень упрощенном example общая инициализация ограничивается методом initContainer(). Для сравнения, JChemPaint значительно сложнее и предлагает ряд параметров апплета, правильная передача которых должна быть проверена.

Такой повторный факторинг может продолжаться. appletests, по-видимому, относятся к более раннему периоду разработки, в то время как новые артефакты jchempaint.src.test, по-видимому, отражают более новую архитектуру тестирования на основе аннотаций.

+0

Спасибо за ваше время, погружаясь в это. Что я до сих пор не понял, действительно ли нужен FEST для этого? Большинство ошибок, которые я обнаружил, находятся в логике апплета, а не в GUI (Swing и т. Д.); кроме того, любое изменение внешнего вида (например, перемещение действия кнопки в меню) графического интерфейса прерывает тестирование FEST, и мне не нравятся процедуры, которые создают больше работы, чем они того стоят. – rwst

+0

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

+0

Я попытаюсь использовать awt.Robot для тестирования, поскольку у меня были только некоторые проблемы с FEST под Linux. – rwst

Смежные вопросы