MongoDB / Mongoose 单元测试 - 最佳实践?
MongoDB / Mongoose Unit Testing - Best practice?
我正在编写一个 npm 包以通过 mongoose 将 GIS 数据导入 MongoDB。我已经使用 mocha 编写了单元测试来测试在保存 mongoose 模型之前发生的数据转换。
我想确保所有猫鼬数据都已正确保存到数据库中(包括需要进行的任何更新)。在这种情况下,最佳做法是什么?
我的直觉是创建一个测试集合,插入所有记录,确保它看起来像我期望的样子,然后删除该集合。
是的,设置和拆除数据库中的所有集合对于确保单元测试之间没有副作用是必要的。实际上,这意味着 beforeEach()
重新连接到数据库并删除所有集合,以及 afterEach()
断开与数据库的连接。
一些更深入的信息:您在这里尝试做的是 integration testing
,您正在测试您的代码与 mongo
之间的实际集成。 Unit tests
是从不调用数据库或其他资源的测试。此处有更多信息:What's the difference between unit tests and integration tests? 对我来说,我将它们分为 tests/unit
和 tests/integration
。
我不知道有任何软件包或库可以为您执行此操作,但请查看 this tutorial 以了解解决此问题的一种方法。
我正在编写一个 npm 包以通过 mongoose 将 GIS 数据导入 MongoDB。我已经使用 mocha 编写了单元测试来测试在保存 mongoose 模型之前发生的数据转换。
我想确保所有猫鼬数据都已正确保存到数据库中(包括需要进行的任何更新)。在这种情况下,最佳做法是什么?
我的直觉是创建一个测试集合,插入所有记录,确保它看起来像我期望的样子,然后删除该集合。
是的,设置和拆除数据库中的所有集合对于确保单元测试之间没有副作用是必要的。实际上,这意味着 beforeEach()
重新连接到数据库并删除所有集合,以及 afterEach()
断开与数据库的连接。
一些更深入的信息:您在这里尝试做的是 integration testing
,您正在测试您的代码与 mongo
之间的实际集成。 Unit tests
是从不调用数据库或其他资源的测试。此处有更多信息:What's the difference between unit tests and integration tests? 对我来说,我将它们分为 tests/unit
和 tests/integration
。
我不知道有任何软件包或库可以为您执行此操作,但请查看 this tutorial 以了解解决此问题的一种方法。