Node.js MongoDB/Mongoose单元测试-最佳实践?

Node.js MongoDB/Mongoose单元测试-最佳实践?,node.js,mongodb,unit-testing,mongoose,mocha.js,Node.js,Mongodb,Unit Testing,Mongoose,Mocha.js,我正在编写一个npm包,通过mongoose将GIS数据导入MongoDB。我已经使用mocha编写了单元测试来测试mongoose模型保存之前发生的数据转换 我希望确保所有mongoose数据都正确保存到数据库中(包括需要进行的任何更新)。在这种情况下,最佳做法是什么 我的直觉是创建一个测试集合,插入所有记录,确保它看起来与我期望的一样,然后删除集合。是的,设置和删除数据库中的所有集合对于确保单元测试之间没有副作用是必要的。实际上,这意味着一个beforeach(),在这里您可以重新连接到数据

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

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


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

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

一些更深层次的信息:您在这里尝试做的是
集成测试
,您正在测试代码与
mongo
之间的实际集成<代码>单元测试是从不调用数据库或其他资源的测试。关于这方面的更多信息:对于我来说,我将它们分为
tests/unit
tests/integration


我不知道有任何包或库可以为您这样做,但请看一看实现这一点的方法。

那么,不仅要创建一个新的集合,还要创建一个全新的测试数据库?明白了。在该教程中,数据库从未被删除,但其所有集合都被删除。工具/库建议请求已被删除。这是否仍被视为“离题”?对于MunGDB中的单元测试实践,这是一个泛泛的问题,我认为它是在一个公平的问题范围之内的。