【发布时间】:2016-07-19 18:26:48
【问题描述】:
我已经使用supertest 实现了在用户登录后运行的测试:
// ../prepare.login
"use strict";
import {default as request} from "supertest";
import {default as app} from "../../server.js";
const postUrl = "/api/v1/login";
const postData = {
"username": "user",
"password": "pass"
};
module.exports = {
prepare: function(done) {
request(app.listen())
.post(postUrl)
.send(postData)
.end((err, res) => {
if (err) {
throw err;
}
module.exports.token = res.body.token;
done();
});
}
}
到目前为止,我一直在使用 es5 并使用 module.exports.token 作为一种丑陋的 hack 将令牌发送到实际测试:
// users.js
...
var login = require("../prepare.login");
describe("authenticated /api/v1/users", function() {
beforeEach(function(done) {
login.prepare(done);
});
});
...
it("On GET /api/v1/users I want to get all the users in an array", function(done) {
request(app.listen())
.get("/api/v1/users")
.set("X-Access-Token", login.token)
.expect(200)
...
我切换到 es6,它不允许在模块顶层以外的任何地方使用 import 和 export 语句。因此,我不确定这应该如何实现。我应该异步等待结果吗?甚至可能吗?有没有其他办法?
【问题讨论】:
标签: node.js ecmascript-6