要使用Jest测试Node.js的HTTP服务器,你需要遵循以下步骤:
npm install --save-dev jest supertest
server.js
的文件,其中包含一个简单的HTTP服务器:// server.js
const http = require('http');
const port = 3000;
const server = http.createServer((req, res) => {
if (req.url === '/') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World!');
} else if (req.url === '/error') {
res.writeHead(500, { 'Content-Type': 'text/plain' });
res.end('Internal Server Error');
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found');
}
});
module.exports = server;
server.test.js
的文件,用于编写测试用例:// server.test.js
const request = require('supertest');
const server = require('./server');
describe('HTTP Server', () => {
beforeAll(() => {
server.listen(3000);
});
afterAll(() => {
server.close();
});
test('GET / should return 200 and "Hello World!"', async () => {
const response = await request(server).get('/');
expect(response.status).toBe(200);
expect(response.text).toBe('Hello World!');
});
test('GET /error should return 500 and "Internal Server Error"', async () => {
const response = await request(server).get('/error');
expect(response.status).toBe(500);
expect(response.text).toBe('Internal Server Error');
});
test('GET /non-existent should return 404 and "Not Found"', async () => {
const response = await request(server).get('/non-existent');
expect(response.status).toBe(404);
expect(response.text).toBe('Not Found');
});
});
package.json
文件中添加一个test
脚本,以便可以运行测试:{
"scripts": {
"test": "jest"
}
}
npm test
命令来执行测试用例。这样,你就可以使用Jest和Supertest库来测试Node.js的HTTP服务器了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。