我有一个"配方"方法,我试图用TDD编写.它基本上会调用不同的方法,偶尔会根据这些方法的结果做出决策:
public void HandleNewData(Data data)
{
var existingDataStore = dataProvider.Find(data.ID);
if (data == null)
return;
UpdateDataStore(existingDataStore, data, CurrentDateTime);
NotifyReceivedData(data);
if (!dataValidator.Validate(data))
return;
//... more operations similar to above
}
Run Code Online (Sandbox Code Playgroud)
我的膝跳反应将是开始编写测试用例,我在其中验证HandleNewData调用上面传递的方法传递预期的参数,并在方法调用失败的情况下返回.但这对我来说有点像这样一个巨大的投入时间来编写这样的测试,几乎没有实际的好处.
那么编写这样的测试真正的好处是什么?还是真的不值得打扰?
看起来它只是一个过度规范的代码,并且只要代码必须调用另一个方法或决定不再调用当前方法之一,就会导致维护问题.