MongoDB / Mongoose 单元测试 - 最佳实践



我正在编写一个npm包,通过mongoose将GIS数据导入MongoDB。我使用 mocha 编写了单元测试来测试在保存猫鼬模型之前发生的数据转换。

我想确保所有猫鼬数据都正确保存到数据库中(包括需要进行的任何更新)。在这种情况下,最佳做法是什么?

我的直觉创建一个测试集合,插入所有记录,确保它看起来像我期望的样子,然后删除集合。

是的,设置和拆除数据库中的所有集合对于确保单元测试之间没有副作用是必要的。实际上,这意味着一个重新连接到数据库并删除所有集合的beforeEach(),以及一个与数据库断开连接的afterEach()

一些更深层次的信息:您在这里尝试做的是integration testing,您正在测试代码和mongo之间的实际集成。 Unit tests是永远不会调用数据库或其他资源的测试。有关此内容的详细信息,请参阅:单元测试和集成测试之间有什么区别?对我来说,我将它们分为tests/unittests/integration.

我不知道有任何包或库可以为您执行此操作,但请查看本教程以了解解决此问题的一种方法。

最新更新