我正在尝试使用 TDD 实现策略模式。每个策略项都实现一个接口。使用 TDD 执行此操作的最佳方法是什么?
您是否必须为接口的每个实现创建一个测试夹具,但在每个实现上测试相同的方法?
任何详细说明采取的方法的文章都将受到欢迎:)
我正在尝试使用 TDD 实现策略模式。每个策略项都实现一个接口。使用 TDD 执行此操作的最佳方法是什么?
您是否必须为接口的每个实现创建一个测试夹具,但在每个实现上测试相同的方法?
任何详细说明采取的方法的文章都将受到欢迎:)
我想我会为策略的每个实现编写一个单独的测试类。
您可以为所有这些创建一个抽象类来继承。这将帮助您确保为每个策略实现所有测试,但有一个小缺点,即您必须至少在每个测试类编译之前实现存根方法。
在第 2 步中,编写不实现策略模式的代码(最简单的工作,即使存在重复的代码)。
然后在第 3 步中,您将每个类一次一个地重构为策略模式,如果这样做仍然有意义的话。
如果你真的在做 TDD,那么你不会从一个模式开始——你重构它。