我有抽象的不同层,其可以在基团分裂一个项目的最佳实践:单元测试 - 用于多层项目
内部API;
数据访问层(DAL)
业务访问层(BAL)
...
公共API
可访问内部数据的公共访问类;
REST终止。
...
而且里面我用内部API公共API服务。
是否需要为所有这些层编写单元测试,还是仅为内部API编写单元测试?
是否有最佳做法?
我应该从内部API开始编写我的测试,然后转到下一层自下而上的层吗?
我有抽象的不同层,其可以在基团分裂一个项目的最佳实践:单元测试 - 用于多层项目
内部API;
数据访问层(DAL)
业务访问层(BAL)
...
公共API
可访问内部数据的公共访问类;
REST终止。
...
而且里面我用内部API公共API服务。
是否需要为所有这些层编写单元测试,还是仅为内部API编写单元测试?
是否有最佳做法?
我应该从内部API开始编写我的测试,然后转到下一层自下而上的层吗?
我会说的第一件事就是“是”。换句话说,测试一切。
对于内部API,您可以使用模拟对象为DAL编写真正的单元测试,并且每个类都是独立测试的。这不仅适用于验证测试,还可以让您确信自己的代码可以工作并用作代码的文档。例如,当REST API调用稍后失败,并且您需要缩小问题的位置时,这种信心也会派上用场。
为了提高速度,您可以使用内存数据库测试DAL。我会称之为集成测试,而其他人会称之为单元测试。只是语义。但你也必须这样做。
内部API测试由开发人员为开发人员。
测试人员应该帮助公众面对任何事情。您只需编写API服务和REST客户端测试的集成测试来验证常见情况和明显的例外情况。
这听起来很多,而且它是。但是如果你花时间去了解你的工具并在任何地方设置自动化,那么你会惊讶于你能够很快完成多少工作。
希望这会有所帮助。