我一直在尝试为我的一个开源项目遵循松散的 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,我应该担心这样的测试吗?