问题描述
虽然以下测试通过,但我感觉自己做错了。我是否需要在每次需要测试安全路由时登录?我已经尝试在获得初始令牌后传递全局变量,但是传递变量却使我感到非常不直观。在before()调用中传递变量给我带来了与在嵌套的promise中传递/访问全局var相同的问题。
describe('Users',function(done) {
var testToken = 'my-test-token'
it('logs in',function(done) { // <= Pass in done callback
var rT = 'tttttt'
chai.request(urlroot)
.post('/login')
.type('form')
.send({ email: 'test_user_1@this.com',password: '9999' })
.end(function(err,res) {
expect(res).to.have.status(200);
expect(res.body.token).to.be.a('string');
done()
});
});
it('gets all users',function(done) { // <= Pass in done callback
// console.log(urlroot + '/users');
chai.request(urlroot)
.post('/login')
.type('form')
.send({ email: 'test_user_1@this.com',res) {
chai.request(urlapi)
.get('/users?secret_token='+res.body.token)
.end(function(err,res){
console.log('data',res.body);
// expect(res.body).to.be.json()
})
});
});
});
解决方法
我要做的是使用class Base
{
public virtual void Method() { }
}
class Derived : Base
{
public override void Method() { }
}
方法来调用我的身份验证服务,以与乘法相同的方式获取令牌,并将其存储到变量中。
类似的东西:
before()
然后,在每个要使用凭据的测试中,请使用var token = "";
before(async () => {
//Get token
token = "Bearer " + await getToken();
});
.set()