我一直在尝试为我的一个开源项目遵循一个宽松的TDD工作流程。这是其他程序员使用的API。我应该在编译之前编写测试吗?
因此,一个关键的方面,以及使API“工作”还在设计将如何被消耗掉。我听到一些人说,在编译之前编写测试是浪费时间,并且在API稳定之前可能会不断重写。我还听说,它应该遵循的工作流程如下所示:
- 写这不会编译测试
- 让它编译
- 让它绿色
我一直试图遵循这个工作流程,但我最终会遇到一些奇怪的事情。例如,在我的API我有这两种方法:
Handles(string pattern); //had this one already
Handles(IPatternMatcher pattern); //needed this one
我需要获得第二种形式的方法添加到我的API。所以,我结束了一个简单的测试,像这样:
public void Handles_SupportsIPatternMatcher()
{
var api=new MyAPI();
api.Handles(new TestPatternMatcher());
}
这似乎是浪费后,它被实施。
我应该继续遵循这一流程,还是有办法改善吗?我如何避免编写基本上只检查编译器错误的测试?由于它是一个公共消费品API,我应该担心这样的测试吗?
“Red-Green-Refactor”听起来比“不会编译 - 编译 - 绿色”好得多:P – 2013-02-15 05:21:52
这对于程序员来说是一个非常好的问题.stackexchange.com – 2013-02-15 05:24:36
@SimonWhitehead well ...技术上编译器错误也算作“红色”:) – Earlz 2013-02-15 05:27:53