TDD 与策略模式

发布于 2024-09-04 10:22:14 字数 138 浏览 3 评论 0原文

我正在尝试使用 TDD 来实现策略模式。每个策略项都实现一个接口。使用 TDD 实现此目的的最佳方法是什么?

您是否必须为接口的每个实现创建一个测试装置,测试相同的方法,但在每个实现上?

任何详细介绍所采取方法的文章将不胜感激:)

I'm trying to implement the strategy pattern using TDD. Each strategy item implements an interface. What's the best way to do this with TDD?

Do you have to create a test fixture for each implementation of the interface testing the same methods but on each implementation?

Any articles detailing the approach to take would be gratefully welcomed :)

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

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

发布评论

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

评论(2

涫野音 2024-09-11 10:22:15

我想我会为该策略的每个实现编写一个单独的测试类。

您可以为所有这些创建一个抽象类来继承。这将帮助您确保为每个策略实现所有测试,但有一个轻微的缺点,即您必须至少在每个测试类编译之前实现存根方法。

I think I would write a separate test class for each implementation of the strategy.

You could make an abstract class for all of these to inherit from. This would help you make sure you implement all the tests for every strategy, but has the slight disadvantage that you'd have to implement stub methods at least before each test class would even compile.

我也只是我 2024-09-11 10:22:15
  1. 编写失败的测试
  2. 编写丑陋的代码以使该测试通过
  3. 重构以使代码更好

在步骤 2 中,编写未实现策略模式的代码(最简单的可行方法,即使存在重复的代码)。

然后在第 3 步中,如果这样做仍然有意义,则一次一个地朝着策略模式重构每个类。

如果你真正在做 TDD,那么你不会从一个模式开始——你会重构它。

  1. Write a test that is failing
  2. Write ugly code to make that test pass
  3. Refactor to make the code better

In step 2, write code that isn't implementing the Strategy Pattern (simplest thing that works, even if duplicated code is present).

Then in step 3 you refactor each class, one at a time, towards the Strategy pattern if it still makes sense to do so.

If you're truly doing TDD then you don't start out with a pattern -- you refactor to it.

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