单元测试访问者模式架构

发布于 2024-07-08 05:26:27 字数 235 浏览 10 评论 0原文

我在我的一款应用程序中将访客作为核心架构理念之一进行了介绍。 我有几个访客正在操作相同的东西。 现在,我应该如何测试它? 我正在考虑的一些测试比单元测试应该大一点(集成测试?无论如何),但我仍然想做。 您将如何在访问者模式上测试类似于 wiki art 中的 C++ 示例的代码

I've introduced visitors as one of core architecture ideas in one of my apps. I have several visitors that operate on a same stuff. Now, how should I test it? Some tests I'm thinking of are a bit larger then a unit test should be (integration test? whatever) but I still wanna do it. How would you test code like the C++ sample from wiki art on Visitor Pattern

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南渊 2024-07-15 05:26:27

单元测试实际上并不是关于测试模式,而是关于测试方法和功能的正确实现。 访问者模式是一个特定的类结构,对于涉及的每个类(特别是 ConcreteVisitor 和 ConcreteElement),您都需要进行单元测试。

当您确信您的类方法表现良好时,您也可以使用单元测试框架来开发集成测试。 不要立即开始集成测试:您会发现您开发了许多集成测试,这些测试实际上是在测试特定类的行为,即单元测试。

您是否需要模拟对象或可以使用“真实”对象是另一回事。 这在很大程度上取决于对象的行为是否足以满足单元测试的目的(即它们不会引入大量额外的依赖项等),以及对象本身是否经过单元测试(即您需要能够信任这些对象) 100%)。 模拟与真实对象问题之前已在 stackflow 上解决过,因此请搜索单元测试标签。

Unit testing isn't really about testing patterns, it is about testing the correct implementation of methods and functions. The visitor pattern is a specific class structure, and for each of the classes (ConcreteVisitor and ConcreteElement, specifically) involved you'll want unit tests.

When you've developed confidence that your class methods are behaving OK, you could use your unit test framework to develop integration tests as well. Do not start integration testing rightaway: you'll find that you develop a lot of integration tests that are actually testing the behavior of a specific class, i.e. unit tests.

Whether you need mock objects or can use 'real' objects is a different matter. This depends a lot on whether the objects behave nice enough for unit test purposes (i.e. they do not pull in a lot of additional dependencies etc.), and whether the objects themselves are unit tested (i.e. you need to be able to trust these objects 100%). The mock vs. real objects issue has been addressed on stackflow before, so search the unittest tags.

梦屿孤独相伴 2024-07-15 05:26:27

制作一个测试访问者对象并使其访问事物......测试它是否访问了正确的事物。

make a test visitor object and make it visit things.... test that it visited the right things.

眼泪都笑了 2024-07-15 05:26:27

您可以创建模拟对象并让访问者访问它们,然后创建模拟访问者并进行测试采取了正确的行动。

You can create mock objects and have your visitors visit them, and then create mock visitors, and test that the right actions were performed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文