Тестирование пользовательского интерфейса затруднено. Как вы думаете, какова лучшая структура тестирования модулей для Swing?
Структурная схема тестирования для пользовательского интерфейса Swing
Ответ 1
В настоящее время лучшим на мой взгляд является FEST.
Ответ 2
Хороший вопрос. Я не могу с этим поделать. Я могу указать вам на статьи о тестировании ui, которые я прочитал из сайта Misko HeveryКак вы думаете, что лучше всего тестовая среда для Swing?
Misko Hevery tips
- Я хотел бы указать вам на Google гуру тестирования Misko Hevery's Веб-сайт. Он много говорит о том, как написать код, который легко проверить.
- Например, когда вы читаете его превосходные слайды " Как написать жесткий тест Код ", он указывает на слайды 45/288 о том, что стоимость исправление ошибок рендеринга относительно низкий. Я думаю, что он прав насчет этого и что вы не должны быть связанный с наличием 100% кода охватите свой пользовательский интерфейс.
- У него также есть несколько полезных советов о том, как протестировать UI.
Важно отделить графический интерфейс пользователя из логики управления и данные. Этого можно достичь с помощью стандартный контроллер просмотра модели дизайн
ObjectMentor
Это веб-сайт о тестировании. Я нашел эту интересную статью Майкла Фейтерса, объясняя Инструменты автоматизации тестирования UI - это змеиное масло
Ответ 3
Я использовал Jemmy поверх JUnit. Вы можете увидеть фрагмент своего примера действия тестового случая здесь:
new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
.startApplication();
JFrameOperator mainFrame = new JFrameOperator("GUI Browser");
new JButtonOperator(mainFrame, "Reload In").push();
new JLabelOperator(mainFrame, "Reloaded");
JTreeOperator tree = new JTreeOperator(mainFrame);
//click in the middle of the tree
tree.clickMouse();
//collapse node
tree.collapsePath(tree.findPath("", "|"));
//expand node
tree.expandPath(tree.findPath("", "|"));
//select node
tree.selectPath(tree.findPath("GUI Browser", "|"));
JTextFieldOperator testField = new JTextFieldOperator(mainFrame);
//type new value in the text field
testField.clearText();
testField.typeText("3");