req和res对象是否可以在NodeExpress中以某种方式全局访问



req.session.username=user.username;

我正在使用supertest来测试路由处理。在我的登录处理代码中,如果用户成功登录,我有以下内容-

req.session.username = user.username;

但是在超级测试回调函数中,我无法访问req对象。

request(app)
          .post('/login')
          .send({username: 'dummy_username', password: 'valid_password'})
          .end(function(err, res){
            if (err) { return done(err); }
            expect(err).toBe(null);
            expect(res.status).toEqual(200);
            done();
          });

我想添加一些类似expect(req.session.username).toBe('dummy_username')的东西,但显然我做不到。当req对我来说不可用时,我可以这样做。那么有没有一种方法可以引用req对象呢?

Supertest仅用于测试响应,因为测试请求(及其服务器端操作(将测试实现细节,而不是行为。超级测试不是这份工作的合适工具。您可以为一些服务器端函数编写纯单元测试,也可以让/login路由在响应主体中包含用户信息(这是典型的(,并让supertest验证信息是否与请求中的信息匹配。

最新更新