4

我正在使用 Mongoose 在 ExpressJS 中编写一个小型 REST API。我已经为应用程序内的所有逻辑编写了单元测试。现在唯一未测试的是 API 是否返回正确的状态代码,以及受限资源是否实际上受到限制。

到目前为止我已经尝试过:

我尝试使用Request对资源执行 GET/POST/PUT/DELETE,但我发现将东西扔到数据库中非常笨拙,保留对对象的引用并稍后再次删除它。

这是解决这个问题的最聪明的方法吗?如果我需要通过实际数据库的实际请求来测试某些东西,我的实现是否错误?

如果这是测试 API 的首选方式,是否有必要将内部功能作为一个完整的解决方案进行测试,或者我应该只测试状态代码和访问权限。

4

1 回答 1

4

我们通常创建一个测试数据库并使用 NODE_ENV='test' ... 运行测试,这会触发与测试数据库的连接。

这样您就可以毫无问题地擦除测试数据库,并且您不必担心在测试之前/之后进行清理。

REST 测试的一个有用工具是 superagent(或 supertest,虽然我更喜欢 agent):

全面披露:我是 superagent 的贡献者。

于 2013-02-02T22:31:39.347 回答