node.js - 为 REST api NodeJS MongoDB 编写测试

标签 node.js testing express integration-testing mocha.js

我正在使用 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/

相关文章:

javascript - NodeJS为应用程序创建DNS名称

node.js - 使用node js的谷歌云存储

iphone - 在 iOS 3.0 中测试 iPhone 应用程序

testing - BDD的解释是什么?

node.js - 如何使用nodeJs和express4使用mysql PDO查询

javascript - express |异步发出多个http请求

node.js - Mongoose 、express 和 EJS 的奇怪行为

javascript - 从中间件中的 promise 调用 'next()' 会导致 'next shouldn' 被多次调用'

Node.js https 在 Cloud9 中不起作用

ios - 如何测试我的 iOS 应用程序的 IP v6 兼容性?