如何正确testing一个具有身份validation的RESTful API
我想为我的Node.js API编写自动化testing,而且我已经开始使用Mocha和Chai,使用chai-http来pipe理请求。
我有一个路由www.example.com/users,并成功地编写了自动化testing注册用户和login用户,所以我以为我在路上,但现在几乎所有其他路线需要用户进行身份validation! 由于我在testing期间嘲笑数据库(使用mongoose进行模仿),我已经注意到了这种依赖关系。 但是,这带来了一个问题,我如何获得一个用户身份validation,但仍然不暴露我的testing多个,可能会改变的代码段?
通过程序的stream程相对简单:在请求安全资源时,会有中间件对用户进行身份validation,然后将user
对象附加到请求上。 那么这个user
对象就可以让路由访问用户的信息并调用数据库。
所以,我想一个理想的解决scheme将一个user
对象附加到请求对象,一旦调用了API。
由于我是相对较新的testing,我欢迎任何反馈,让我洞察到更好的testing程序。
我已经完成了这个任务,利用摩卡提供的beforeEach
钩子。 其中,我调用一个名为seedDB
的函数,它嘲笑数据库并返回一个包含我需要的所有信息的对象。 seedDB
函数实际上发布到API以便执行诸如注册用户和login之类的事情,然后使user
对象和token
可供我的testing通过对象访问。 到目前为止,它的工作非常好,因为当我在API /validation路线中进行更改时,testing会自动响应这些更改。
- 在passport.js或session中的某处添加用户对象中的额外信息
- 使用Passport在Socket.io上进行令牌validation
- 谷歌Oauth给代码赎回错误
- 基于NodeJS的HTTP客户端:如何validation请求?
- node.jsauthenticationphp auth_user
- 当请求来自另一个域时,如何在sailsJS后端应用程序中坚持authentication状态?
- 何时生成ssl密钥和证书 – 出于安全原因
- 在对Google表单进行多次调用时,API身份validation不适用于第二次调用:请求的身份validation范围不足
- 护照facebook战略投掷数据必须是使用Node.js的string