我正在编写一个受jwt
保护的REST API的集成测试。 一个API术后/user/token
是返回jwt
给予username
和password
这个令牌然后用于如操作的列表:超级测试,测试安全REST API
GET /user/:id
,在此路由使用jwt({secret: secret.secretToken})
,所以令牌纳入http标头Authorization
。
当使用超级测试进行测试时,我可以进行嵌套测试,但是我想先获取令牌,然后将此令牌用于其他操作测试。
POST /user/token => 12345
GET /user/:id, `Authorization Bearer 12345`
GET /user/:foo, `Authorization Bearer 12345`
如何避免生成新令牌每个操作测试(见下文),但仅使用单个一个由POST /用户/令牌生成。
it('should get a valid token for user: user1', function(done) {
request(url)
.post('/user/token')
.send({ _id: user1._id, password: user1.password })
.expect(200) // created
.end(function(err, res) {
// test operation GET /user/:id
如何实现这一点,如果我们有多个文件和文件夹与分散在他们的单元测试,而无需重复令牌让每个文件? – nottinhill 2015-03-30 11:28:28
@SirBenBenji我认为你只需要定义钩子,以便你可以在需要的地方“需要”,例如。 http://stackoverflow.com/a/10561632会工作。另见https://github.com/mochajs/mocha/wiki/Shared-Behaviours – vesse 2015-03-31 09:05:54