我想为我的Node.js API编写自动化测试,我已经开始使用Mocha和Chai,使用chai-http来管理请求。
我已经找到了通往www.example.com/users的路线,并成功编写了自动化测试来注册用户并登录用户,所以我认为我在路上,但现在几乎所有其他用户路由要求用户进行身份验证!由于我在测试期间嘲笑数据库(使用带有mongoose的mockgoose),我已经处理了这种依赖。但是,这提出了一个问题,如何让用户通过身份验证,但仍然没有将我的测试暴露给多个可能更改的代码?
通过程序的流程相对简单:在请求安全资源时,有中间件对用户进行身份验证,然后将user
对象附加到请求上。然后,user
对象使路由可以访问用户的信息并调用数据库。
因此,一旦调用了API,我认为理想的解决方案会将user
对象附加到请求对象。
由于我对测试比较陌生,我欢迎任何能让我深入了解更好测试程序的反馈。
答案 0 :(得分:0)
我已经通过利用Mocha提供的beforeEach
钩子完成了这项任务。在其中,我调用一个名为seedDB
的函数,该函数模拟数据库并返回一个包含我需要的所有信息的对象。 seedDB
函数实际上发布到API以执行注册用户和登录等操作,然后使user
对象和token
可供我的测试使用宾语。到目前为止,它的效果非常好,因为当我在API /验证路径中更改内容时,测试会自动响应更改。