我正在使用 Mongoose 在 ExpressJS 中编写一个小型 REST API。我已经为应用程序内的所有逻辑编写了单元测试。 现在唯一没有测试的是 API 是否返回正确的状态代码,以及受限资源是否实际上受到限制。
到目前为止我尝试了什么:
我尝试使用 Request在资源上执行 GET/POST/PUT/DELETE,但我发现将内容放入数据库、保留对对象的引用并稍后再次删除它非常笨拙。
这是解决这个问题的最明智的方法吗?如果我需要通过实际数据库的实际请求来测试某些内容,我的实现是否有误?
如果这是测试 API 的首选方式,是否有必要将内部功能作为一个完整的解决方案进行测试,或者我应该只测试状态代码和访问权限。
最佳答案
我们通常创建一个测试数据库并使用 NODE_ENV='test' 运行测试......这会触发与测试数据库的连接。
这样您就可以毫无问题地删除测试数据库,而且您不必担心测试前/后的清理工作。
用于 REST 测试的一个有用工具是 superagent(或 supertest,尽管我更喜欢 agent):
全面披露:我是 superagent 的贡献者。
关于node.js - 为 REST api NodeJS MongoDB 编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665115/