我正在使用Mongoose在ExpressJS中编写一个小型REST API。我已经为应用程序内的所有逻辑编写了单元测试。 现在唯一没有经过测试的是,如果API返回正确的状态代码,并且限制资源实际上是受限制的。
到目前为止我尝试了什么:
我尝试使用Request对资源执行GET / POST / PUT / DELETE,但我发现将内容放入db中非常笨拙,保留对对象的引用并在以后再次删除它。 / p>
这是接近这个的最明智的方法吗?如果我需要通过实际数据库的实际请求测试某些东西,我的实现是否错误?
如果这是测试API的首选方式,是否有必要将内部功能作为完整的解决方案进行测试,或者我应该只测试状态代码和访问权限。
答案 0 :(得分:3)
我们通常会创建一个测试数据库并使用NODE_ENV ='test'运行测试...这会触发与测试数据库的连接。
这样你可以擦除测试数据库没问题,你不必担心在测试之前/之后进行清理。
一个有用的REST测试工具是superagent(或者说是supertest,虽然我更喜欢代理):
完全披露:我是superagent的贡献者。