我在其中一个应用中将访问者介绍为核心架构创意之一。我有几个访问者使用相同的东西。现在,我该如何测试呢?我正在考虑的一些测试比单元测试要大一些(集成测试?无论如何),但我仍然想做。您将如何在Visitor Pattern
上测试来自wiki art的C ++示例之类的代码答案 0 :(得分:3)
单元测试不是关于测试模式,而是关于测试方法和函数的正确实现。访问者模式是一个特定的类结构,对于每个涉及的类(ConcreteVisitor和ConcreteElement),您都需要进行单元测试。
当您确信您的类方法行为正常时,您可以使用单元测试框架来开发集成测试。不要立即开始集成测试:你会发现你开发了许多实际测试特定类行为的集成测试,即单元测试。
您是否需要模拟对象或可以使用“真实”对象是另一回事。这很大程度上取决于对象是否足够好用于单元测试目的(即它们不会引入很多额外的依赖等),以及对象本身是否经过单元测试(即您需要能够信任这些对象) 100%)。模拟与实际对象之前的问题已在stackflow上解决,因此请搜索unittest标记。
答案 1 :(得分:2)
您可以创建mock objects并让访问者访问它们,然后创建模拟访问者,并测试是否执行了正确的操作。
答案 2 :(得分:1)
制作一个测试访问者对象并让它访问事物....测试它访问了正确的东西。