通过根据需要旋转数据库或模拟来进行测试?
Testing by spinning up db's as needed or mocking?
我正在开始一个新的节点项目,我希望获得最大的测试覆盖率。我正在尝试找出最好的方法来测试访问数据库或调用其他 REST 服务的内容。
我已经为 mock/spys/stubs 涉足了 sinon.js,但这些东西似乎很快就让我感到困惑。
我正在考虑使用一些内存节点数据存储来设置和填充数据,运行 我的测试,然后拆除内存数据存储。基本上类似于 travis-ci 的工作方式。
至于访问 Web 服务,我认为我仍然需要 mock/spy/stub 那些。
其他人如何处理这样的事情?
对于 BDD,测试规范应该很快。如果测试很快,它会让你快速发展。
您不会测试其他 REST 服务,您将测试您的代码在使用这些 REST 服务时的行为方式。
模拟 REST 服务始终是一个好主意,因为它可以加快规范的执行速度。
对于与数据库读写相关的规范,在本地运行一个数据库总是好的,你可以使用beforeEach
和afterEach
从数据库中插入和删除数据。
为了自动启动和停止db,在package.json
中的scripts
下添加pretest
和posttest
命令
结论:
我会模拟 REST 服务和 运行 一个仅用于测试的本地数据库。这将使我能够快速 运行 规格。
使用 grunt watch
并点击保存,BAM!!!,你知道你的规格是否通过。
我正在开始一个新的节点项目,我希望获得最大的测试覆盖率。我正在尝试找出最好的方法来测试访问数据库或调用其他 REST 服务的内容。
我已经为 mock/spys/stubs 涉足了 sinon.js,但这些东西似乎很快就让我感到困惑。
我正在考虑使用一些内存节点数据存储来设置和填充数据,运行 我的测试,然后拆除内存数据存储。基本上类似于 travis-ci 的工作方式。
至于访问 Web 服务,我认为我仍然需要 mock/spy/stub 那些。
其他人如何处理这样的事情?
对于 BDD,测试规范应该很快。如果测试很快,它会让你快速发展。
您不会测试其他 REST 服务,您将测试您的代码在使用这些 REST 服务时的行为方式。
模拟 REST 服务始终是一个好主意,因为它可以加快规范的执行速度。
对于与数据库读写相关的规范,在本地运行一个数据库总是好的,你可以使用beforeEach
和afterEach
从数据库中插入和删除数据。
为了自动启动和停止db,在package.json
scripts
下添加pretest
和posttest
命令
结论: 我会模拟 REST 服务和 运行 一个仅用于测试的本地数据库。这将使我能够快速 运行 规格。
使用 grunt watch
并点击保存,BAM!!!,你知道你的规格是否通过。