4

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

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

任何详细说明采取的方法的文章都将受到欢迎:)

4

2 回答 2

1

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

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

于 2010-06-04T10:59:26.457 回答
1
  1. 编写一个失败的测试
  2. 编写丑陋的代码以使测试通过
  3. 重构以使代码更好

在第 2 步中,编写不实现策略模式的代码(最简单的工作,即使存在重复的代码)。

然后在第 3 步中,您将每个类一次一个地重构为策略模式,如果这样做仍然有意义的话。

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

于 2010-06-04T11:10:59.987 回答