ope*_*sas 5 express supertest jestjs
我有一个简单的快速 http 服务器,它在向 / 发出 get 时返回“Hello worl”
我有以下测试:
import request from 'supertest';
import app from '../app/app';
test('test http server', async () => {
const res = await request(app).get('/')
expect(res.body).toEqual('Hello world');
});
Run Code Online (Sandbox Code Playgroud)
测试失败是这样的:
? test http server
expect(received).toEqual(expected)
Expected: "Hello world"
Received: {}
7 | const res = await request(app).get('/')
8 |
> 9 | expect(res.body).toEqual('Hello world');
Run Code Online (Sandbox Code Playgroud)
如何将 response.body 作为文本获取以进行检查?
似乎只返回您使用的文本(无 json)res.text
,如下所示:
test('test http server', async () => {
const res: request.Response = await request(app).get('/')
expect(res.type).toEqual('text/html');
expect(res.text).toEqual('Hello world');
});
Run Code Online (Sandbox Code Playgroud)
另一方面,当测试返回 json 的端点时,我可以这样做:
test('test valid_cuit with a valid case', async () => {
const cuit: string = '20-24963205-9'
const res: request.Response = await request(app).get(`/api/valid_cuit/${ cuit }`)
expect(res.type).toEqual('application/json')
expect(res.body.cuit).toEqual(cuit)
expect(res.body.isValid).toBe(true)
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3537 次 |
最近记录: |