Модульное тестирование архитектуры шаблона посетителя - PullRequest
6 голосов
/ 28 октября 2008

Я представил посетителей как одну из основных идей архитектуры в одном из моих приложений. У меня есть несколько посетителей, которые работают над одним и тем же материалом. Теперь, как мне это проверить? Некоторые тесты, о которых я думаю, немного больше, чем должен быть модульный тест (интеграционный тест? Что угодно), но я все еще хочу это сделать. Как бы вы протестировали код, подобный примеру C ++, из вики-искусства на Шаблон посетителя

Ответы [ 3 ]

3 голосов
/ 29 октября 2008

Юнит-тестирование на самом деле не о шаблонах тестирования, а о тестировании правильной реализации методов и функций. Шаблон посетителя представляет собой особую структуру классов, и для каждого из задействованных классов (в частности, ConcreteVisitor и ConcreteElement) вам понадобятся модульные тесты.

Когда вы обрели уверенность в том, что ваши методы класса работают нормально, вы можете также использовать свою инфраструктуру модульных тестов для разработки интеграционных тестов. Не начинайте тестирование интеграции сразу: вы обнаружите, что вы разрабатываете много интеграционных тестов, которые фактически тестируют поведение определенного класса, то есть модульных тестов.

Нужны ли вам фиктивные объекты или вы можете использовать «настоящие» объекты - это другой вопрос. Это во многом зависит от того, ведут ли себя объекты достаточно хорошо для целей модульного тестирования (т. Е. Они не требуют большого количества дополнительных зависимостей и т. Д.), И от того, являются ли сами объекты модульным тестированием (т. Е. Нужно быть в состоянии доверять этим объектам 100%). Проблема фиктивных и реальных объектов ранее решалась в стеке, поэтому ищите теги unittest.

2 голосов
/ 29 октября 2008

Вы можете создать фиктивные объекты , чтобы ваши посетители посетили их, а затем создать фиктивных посетителей и проверить, были ли выполнены правильные действия.

1 голос
/ 29 октября 2008

сделать тестовый объект посетителя и заставить его посещать вещи ... проверить, что он посетил правильные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...