У меня есть приложение Swing java с сетевыми связями с несколькими «игроками», которые представлены в виде игровых объектов, каждый со своей собственной нитью связи. Приложение имеет объект «Команда», управляющий всеми объектами игрока. Некоторые компоненты пользовательского интерфейса прослушивают события, переданные игрокам через объект Team.Управление событиями Swing в тесте JUnit
В моем дизайне командный объект запускает все события в потоке Swing с помощью invokeLater, так что остальной части моего приложения не нужно беспокоиться о проблемах с потоками. Тем не менее, я не знаю, как я могу проверить класс Team в тесте JUnit.
Немного больше фона. Сначала у меня был объект Team, который обстреливал его события в потоках объектов игрока (без переключения потоков). Тестирование Team Team прошло успешно, но я вошел во многие проблемы с потоками в своем пользовательском интерфейсе с помощью invokeLaters и синхронизирован повсюду. Затем я решил упростить модель потоковой передачи, указав, что события потока объекта Team были связаны с потоком Swing, но теперь тестирование модуля Team завершилось неудачно, потому что оно не принимает события. Что делать?
Решение, которое приходит на ум, состоит в том, чтобы ввести дополнительный объект поверх команды, который выполняет переключатель потока, и сохранить исходный модульный тест неповрежденным, но мне не нравится идея ввести сложность в производственный код, чтобы сделать единичный тест.
Вы правы, что я тестирую более одного класса. Я пытаюсь добиться того, чтобы связь между несколькими процессами работала до уровня команды. Это взаимодействие между объектом, который я хочу проверить, и мне нужно подумать, чтобы найти другой способ. Спасибо за совет. – Emile 2008-12-01 08:37:48