Общее правило организации тестирования такое: Если объект A использует объект B и объект B уже протестирован, то не надо при тестировании объекта А тестировать объект B. Надо тестировать только соблюдение предусловий по отношению к объекту А.
Допустим, A - это какая-то модель таблицы (реализация TableModel). B - контроллер, который заполняет модель А данными.
Если А протестирована, то остается проверить, что контроллер будет общаться с А только в edt-потоке (см. предыдущую статью).
Раз в поведении модели А мы уверены, то не нужно городить кучу Expectations, а достаточно проверить поток и делегировать выполнение метода в А. Для этого создаем вспомогательный Action:
И вот так им воспользуемся:
Небольшая тонкость: что бы случайно не передать в конструктор B не мок, а оригинал, мы требуем, что бы к моку обратились хотя бы один раз.
вторник, 24 августа 2010 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий