Sto scrivendo test di integrazione per un'API REST protetta da jwt
. Un'API operazione POST /user/token
è restituire un jwt
dato un username
e password
e questo token viene quindi utilizzato per un elenco di operazioni quali:Test super, test REST API
GET /user/:id
Se l'itinerario utilizza jwt({secret: secret.secretToken})
, quindi il token è incluso in l'intestazione http Authorization
.
Quando si esegue il test con super test, è possibile eseguire test nidificati, ma prima desidero ottenere il token, quindi utilizzare questo token per altri test delle operazioni.
POST /user/token => 12345
GET /user/:id, `Authorization Bearer 12345`
GET /user/:foo, `Authorization Bearer 12345`
Come evitare la generazione di un nuovo token per ogni test funzionamento (vedi sotto), ma usare solo un singolo generare da POST/user/token.
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
Come raggiungere questo obiettivo se abbiamo più file e cartelle con unit test dispersi in esse, senza ripetere il token entrare in ogni file? – nottinhill
@SirBenBenji Penso che sia sufficiente definire il gancio in modo da poterlo "richiedere" dove necessario, ad es. http://stackoverflow.com/a/10561632 funzionerebbe. Vedi anche https://github.com/mochajs/mocha/wiki/Shared-Behaviours – vesse