我有一个具有不同抽象层的项目,可以分成几组:
内部 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 客户端测试编写集成测试来验证常见情况和明显的例外情况。
听起来很多,而且确实如此。但是,如果您花时间了解您的工具并在任何地方设置自动化,您会惊讶于您可以快速完成多少。
希望这可以帮助。