在理想情况下,作为 Sails 用户,您可以执行的任何操作(无论是通过编程还是通过命令行工具)都应该有一个测试。但是,Sails 中的配置变化数量,以及用户代码可以覆盖几乎任何核心关键部分的事实,意味着我们永远无法完全达到这一点。这没关系。
相反,Sails 项目的目标是为您可能使用的任何Sails 功能(通过编程或通过命令行工具)编写测试。在这些功能在依赖项中实现的情况下,该功能的唯一测试存在于该依赖项中(例如,Waterline、Skipper 和 Captains Log)。即使在这些情况下,Sails 中的测试也不可避免地最终会重新测试 Sails 的依赖项已经验证的某些功能,这没什么问题。
我们应该努力避免验证排他性的测试:它会削弱我们快速开发的能力。换句话说,测试不应该在引入附加功能时失败。
例如,如果您正在编写一个测试来检查是否使用sails new
创建了适当的文件,那么检查这些文件是有意义的,但不应该确保仅创建了这些文件(即添加新文件不应该破坏测试)。
另一个例子是验证蓝图配置正确性的测试,例如sails.config.blueprints.rest
。测试应该检查蓝图在启用和禁用rest
配置的情况下是否正常工作。我们可以更改配置,添加更多特定于控制器的选项等,我们只需要编写新的测试。
另一方面,如果我们测试蓝图行为的策略涉及评估行为,然后对配置“应该”是什么样子做出判断,那么当我们添加新选项时,我们就必须修改测试。这听起来可能没什么大不了的,但它可能会迅速失控!