Piszę test integracji dla REST API chronionego przez jwt
. Jeden API operacja POST /user/token
jest zwrócenie jwt
dali username
i password
i token ten jest następnie wykorzystywany do listy operacji, takich jak:Super test, test secure REST API
GET /user/:id
Jeżeli trasa stosuje jwt({secret: secret.secretToken})
, to znacznik jest włączony do nagłówek http Authorization
.
Podczas testowania z super testem mogę przeprowadzić test zagnieżdżony, ale chcę najpierw uzyskać token, a następnie użyć tego tokena do innych testów operacyjnych.
POST /user/token => 12345
GET /user/:id, `Authorization Bearer 12345`
GET /user/:foo, `Authorization Bearer 12345`
Jak uniknąć generowania nowego tokenu dla każdego testu pracy (patrz poniżej), ale wykorzystać tylko jeden nie generować przez POST/user/tokena.
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
Jak to osiągnąć, jeśli mamy kilka plików i folderów z testów jednostkowych rozproszonymi w nich, bez powtarzania token dostaniem się każdy plik? – nottinhill
@SirBenBenji Myślę, że po prostu musisz zdefiniować hak, aby móc go "wymagać" w razie potrzeby, np. http://stackoverflow.com/a/10561632 będzie działać. Zobacz także https://github.com/mochajs/mocha/wiki/Shared-Behaviours – vesse