Я представил посетителей в качестве одной из основных идей архитектуры в одном из моих приложений. У меня есть несколько посетителей, которые работают на одном и том же материале. Теперь, как я должен его проверить? Некоторые тесты, о которых я думаю, немного больше, чем единичный тест (интеграционный тест?), Но я все еще хочу это сделать. Как бы вы протестировали код, подобный образ C++, из wiki art на Visitor PatternМодульное тестирование Архитектура шаблона посетителей
ответ
сделать тестовый объект посетителя и заставить его посетить вещи .... проверить, что он посетил правильные вещи.
Вы можете создать mock objects, и ваши посетители посещают их, а затем создадут насмешливых посетителей и проведут проверку правильности действий.
Тестирование на модуле не касается тестирования шаблонов, это проверка правильности реализации методов и функций. Шаблон посетителя представляет собой определенную структуру классов, и для каждого из классов (ConcreteVisitor и ConcreteElement, в частности) вам нужны модульные тесты.
Если у вас есть уверенность в том, что методы класса ведут себя нормально, вы можете использовать свою модульную тестовую среду для разработки интеграционных тестов. Не начинайте интеграционное тестирование прямо сейчас: вы обнаружите, что разрабатываете множество интеграционных тестов, которые на самом деле проверяют поведение определенного класса, т. Е. Модульные тесты.
Если вам нужны макетные объекты или вы можете использовать «реальные» объекты, это другое дело. Это сильно зависит от того, хорошо ли объекты ведут себя достаточно хорошо для целей единичного тестирования (т. Е. Они не тянут много дополнительных зависимостей и т. Д.), И независимо от того, тестируются ли сами объекты (т.е. вам нужно доверять этим объектам 100%). Проблема с ложными или реальными объектами была рассмотрена ранее в стеке, поэтому выполните поиск тегов unittest.
- 1. Модульное тестирование модуля шаблона
- 2. Как выполнить модульное тестирование посетителей в Jsqlparser?
- 3. модульное тестирование для шаблона наблюдателя
- 4. Как выполнить модульное тестирование вручную?
- 5. Модульное тестирование - тестирование в изоляции
- 6. Тестирование интеграции или модульное тестирование?
- 7. г ++ -fsyntax только модульное тестирование
- 8. Модульное тестирование с Рубином
- 9. Модульное тестирование TSQL
- 10. модульное тестирование DAO
- 11. Модульное тестирование Cherrypy HTTPRedirect.
- 12. Модульное тестирование OpenRasta
- 13. Модульное тестирование Jee фильтр
- 14. Fluent Validation Модульное тестирование
- 15. ClaimsPrincipalПермация и модульное тестирование
- 16. Модульное тестирование с FromAsyncPattern
- 17. Модульное тестирование вектор строка
- 18. Модульное тестирование с ForEach
- 19. Модульное тестирование PHP Framework
- 20. Модульное тестирование утверждает дублирование
- 21. Модульное тестирование Angularjs jasmine
- 22. httpcontext.current.server.mappath и модульное тестирование
- 23. Модульное тестирование Шаблон Freemarker
- 24. Модульное тестирование нескольких утверждений
- 25. Угловое модульное тестирование обещает
- 26. Модульное тестирование MongoWriteExceptions
- 27. ccnet и модульное тестирование
- 28. Модульное тестирование в Python
- 29. Исследуя модульное тестирование Sails.js
- 30. Модульное тестирование с Oracle
Можете ли вы привести простой пример, когда я использую Jsqlparser, который использует шаблон посетителя и хотел бы знать, как их тестировать. – Tony 2017-01-25 13:13:38
, вероятно, вы захотите задать свой собственный вопрос. показать базовый код и то, что у вас возникли проблемы с тестированием. Я больше не использую C++, но кто-то еще, скорее всего, даст вам код, показывающий, как это сделать. – 2017-01-25 21:59:16