Юнит и сообщения - PullRequest
       3

Юнит и сообщения

2 голосов
/ 05 июля 2011

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

У меня есть два вопроса: во-первых, без изменения существующего кода, есть ли способ, которым я могу подавлять окна сообщений и не нажимать ввод каждый раз, когда я запускаю модульные тесты?

Второй вопрос: может ли тестовая функция ожидать окно сообщения и утверждать сбой \ успех на своем строковом содержимом?

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

Спасибо:)

Нили

Ответы [ 3 ]

2 голосов
/ 05 июля 2011

Существует множество способов начать работу, если только вам было разрешено редактировать код, поэтому первым делом я хотел бы посмотреть, можно ли смягчить это ограничение, и прочитать Эффективная работа с устаревшим кодом. .

В противном случае вы можете попробовать использовать среду тестирования GUI, такую ​​как FEST-Swing , чтобы проверить содержимое полей сообщений, как ожидалось.

0 голосов
/ 23 декабря 2014

Запрещено менять код, говорите?Сначала подумал, что стоит взглянуть на JMockit , который действительно открывает множество возможностей, когда вы серьезно ограничены кодом, который не был написан с большой заботой о том, как его следует тестировать.Это должно позволить вам, без изменения какого-либо кода, заменить предпочитаемую реализацию мешающих частей во время выполнения теста - так что только в контексте тестирования вы могли бы изменить субъект теста (будьте осторожны, чтобы написать содержательный тест!) Илиего зависимости.Могут быть полезны и другие фальшивые объектные инфраструктуры, но затрачиваемое на изучение JMockit действительно потраченное время.

0 голосов
/ 05 июля 2011
unfortunately I am not allowed to change anything in the code.

В Google есть все о том, как автоматизировать тестирование Swing с помощью JUnit. К сожалению, при тестировании нет возможности обойти эту проблему.

...