Когда дело доходит до программирования GUI (по крайней мере, для веб), я чувствую, что часто единственное, что было бы полезно для модульного тестирования, это некоторые из частных методов *. В то время как модульное тестирование имеет смысл для внутреннего кода, я чувствую, что оно не совсем подходит для классов GUI.
Каков наилучший способ добавить автоматическое тестирование?
* Почему я думаю, что единственные методы, полезные для тестирования, являются закрытыми:
Часто, когда я пишу классы GUI, у них даже нет открытых методов, кроме конструктора. Публичные методы, если они есть, тривиальны, и конструктор выполняет большую часть работы, вызывая закрытые методы.
Они получают некоторые данные от сервера, делают много тривиальных выводов и подают данные в конструктор других классов, содержащихся в нем, добавляя слушателей, которые вызывают (более или менее напрямую), вызовы сервера ... Большинство из них довольно тривиальные (самая сложная часть - это макет: css, IE и т. д.), но иногда я создаю какой-то закрытый метод, который выполняет некоторые продвинутые трюки, которые я определенно не *1015* хочу видеть публично (поскольку он тесно связан реализация макета, и, вероятно, изменится), но является достаточно сложным, чтобы сломать. Они часто вызываются только конструктором или повторно событиями в коде, а не какими-либо открытыми методами вообще.
Мне бы хотелось иметь возможность протестировать этот тип методов, не делая его публичным или прибегая к хитрым приемам.
(Кстати: в настоящее время я использую GWT, но я чувствую, что это применимо к большинству языков / сред, которые я использовал при кодировании для GUI)