在 Mocha 和 SuperTest 中设置 Basic Auth

Setting Basic Auth in Mocha and SuperTest

我正在尝试为我们设置一个测试,以验证被用户名和密码的基本身份验证阻止的路径的用户名和密码。

it('should receive a status code of 200 with login', function(done) {
    request(url)
        .get("/staging")
        .expect(200)
        .set('Authorization', 'Basic username:password')
        .end(function(err, res) {
            if (err) {
                throw err;
            }

            done();
        });
});

username:password 部分必须进行 base64 编码

你可以使用像

这样的东西
.set("Authorization", "basic " + new Buffer("username:password").toString("base64"))

使用认证方式

SuperTest is based on SuperAgent which provides the auth method to facilitate Basic Authentication:

it('should receive a status code of 200 with login', function(done) {
    request(url)
        .get('/staging')
        .auth('the-username', 'the-password')
        .expect(200, done);
});

来源:http://visionmedia.github.io/superagent/#basic-authentication


PS:您可以将 done 直接传递给任何 .expect() 调用