Supertest 是一个用于测试 HTTP 服务器的库,它允许你轻松地模拟客户端请求,包括发送表单数据。要使用 Supertest 附加多个表单数据字段,你可以使用 .field()
方法。以下是一个示例,展示了如何使用 Supertest 发送包含多个表单数据字段的 POST 请求:
以下是一个使用 Supertest 发送包含多个表单数据字段的 POST 请求的示例:
const request = require('supertest');
const express = require('express');
// 创建一个简单的 Express 应用
const app = express();
app.use(express.urlencoded({ extended: true }));
// 定义一个处理 POST 请求的路由
app.post('/submit-form', (req, res) => {
res.json(req.body);
});
// 测试代码
describe('POST /submit-form', () => {
it('should return the form data', async () => {
const response = await request(app)
.post('/submit-form')
.field('username', 'john_doe')
.field('email', 'john@example.com')
.field('age', '30');
expect(response.status).toBe(200);
expect(response.body).toEqual({
username: 'john_doe',
email: 'john@example.com',
age: '30'
});
});
});
express.urlencoded
中间件来解析 URL 编码的请求体。/submit-form
,该路由将接收到的表单数据以 JSON 格式返回。.field()
方法附加多个表单数据字段。然后验证响应状态码和返回的数据是否符合预期。express.urlencoded
中间件。.field()
方法中的字段名称和值是否正确。app.use(express.urlencoded({ extended: true }))
启用 URL 编码解析。.field()
方法中的字段名称和值与预期一致。通过以上步骤和示例代码,你应该能够成功使用 Supertest 发送包含多个表单数据字段的请求,并进行相应的测试。
没有搜到相关的文章