如何正确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会自动响应这些更改。