首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我试图在超级测试中设置一个cookie,但它不起作用

我试图在超级测试中设置一个cookie,但它不起作用
EN

Stack Overflow用户
提问于 2022-03-01 21:29:52
回答 2查看 1.6K关注 0票数 1

我试图在supertest中将cookie会话设置为post请求,但我不能。这是我的测试代码:

代码语言:javascript
运行
复制
const app = express();

app.set("trust proxy", true);
app.use(json());
app.use(
  cookieSession({
    signed: false,
    secure: process.env.NODE_ENV !== "test",
  })
);
   
    
    it("this is a test", async () => {
      const response = await request(app)
        .post("/api/users/current")
        .set("Cookie", [
        'express:sess=eyJqd3QiOiJleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKcFpDSTZJakV5TXpRaUxDSmxiV0ZwYkNJNkluUmxjM1JBZEdWemRDNWpiMjBpTENKcFlYUWlPakUyTkRZeE5qazVNREI5LjZybE8zODB2RG1PN0J4cFlhRERZSnBScmhrMEc2X3pvN3BBd2MxYU5rMVEifQ=='
          ])
        .send({});
    
      expect(response.get("Set-Cookie")).toBeDefined();
    });

由于response.get("Set-Cookie")未定义,此测试失败。

EN

回答 2

Stack Overflow用户

发布于 2022-09-14 17:23:00

新版本的cookie-session将要求会话以关键字session开头。

代码语言:javascript
运行
复制
"session=eyJqd3QiOiJ..."

相对于express:sess

代码语言:javascript
运行
复制
"express:sess=eyJqd3QiOiJ..."

帮助我的另一件事是agent的使用。我是根据超测试文档做的。

代码语言:javascript
运行
复制
import express from 'express';
import request from 'supertest';

const app = express();
const agent = request.agent(app); // <-- Important

const response = agent // <-- Request through agent
  .post('/api/users/current')
  .set('Cookie', [
    'session=eyJqd3QiOiJ...', // <-- No 'express:sess' (Cropped for demo)
  ])
  .send({});
票数 0
EN

Stack Overflow用户

发布于 2022-04-25 21:15:17

根据我的调查,超级测试库不稳定。大多数开发人员在测试期间很难设置或检索cookie。

您可以查看以下链接:如何设置签名的cookie

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71314834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档