Tôi đang viết kiểm tra tích hợp cho một API REST được bảo vệ bởi một jwt
. Một API hoạt động POST /user/token
là trả lại một jwt
cho một username
và password
và mã thông báo này sau đó được sử dụng cho một danh sách các hoạt động như:Kiểm tra siêu, kiểm tra REST API an toàn
GET /user/:id
Trong trường hợp tuyến đường được sử dụng jwt({secret: secret.secretToken})
, vì vậy các token được đưa vào tiêu đề http Authorization
.
Khi thử nghiệm với siêu thử nghiệm, tôi có thể thử nghiệm lồng nhau nhưng tôi muốn nhận mã thông báo đầu tiên, sau đó sử dụng mã thông báo này để kiểm tra hoạt động khác.
POST /user/token => 12345
GET /user/:id, `Authorization Bearer 12345`
GET /user/:foo, `Authorization Bearer 12345`
Cách tránh tạo mã thông báo mới cho mọi thử nghiệm hoạt động (xem bên dưới) nhưng chỉ sử dụng một mã thông báo duy nhất được tạo bởi POST/người dùng/mã thông báo.
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
Làm thế nào để đạt được điều này nếu chúng ta có nhiều file và thư mục với các bài kiểm tra đơn vị phân tán trong họ, mà không lặp lại những dấu hiệu nhận được trong mỗi tập tin? – nottinhill
@SirBenBenji Tôi nghĩ bạn chỉ cần xác định móc để bạn có thể 'yêu cầu 'ở nơi cần thiết, ví dụ: http://stackoverflow.com/a/10561632 sẽ hoạt động. Xem thêm https://github.com/mochajs/mocha/wiki/Shared-Behaviours – vesse