Unit testing Jest如何检查异步响应
我对开玩笑和反应还不熟悉,所以这应该是一个非常简单的问题来回答。。。我有一个api端点,我想检查我是否可以点击。我选择Axios作为客户端来尝试这一点,并创建了以下测试:Unit testing Jest如何检查异步响应,unit-testing,jestjs,Unit Testing,Jestjs,我对开玩笑和反应还不熟悉,所以这应该是一个非常简单的问题来回答。。。我有一个api端点,我想检查我是否可以点击。我选择Axios作为客户端来尝试这一点,并创建了以下测试: describe('Api Tests', () => { it('can perform an axios request', () => { console.log('Here goes!'); const resp = axios.get('api-endpoint'); con
describe('Api Tests', () => {
it('can perform an axios request', () => {
console.log('Here goes!');
const resp = axios.get('api-endpoint');
console.log(resp);
expect(resp).toBeDefined();
console.log('Done...');
});
});
谢天谢地,测试通过了,但输出如下:
PASS src\api\api.test.js
Api Tests
√ can perform an axios request (39ms)
console.log src\api\api.test.js:15
Here goes!
console.log src\api\api.test.js:23
Promise { <pending> }
console.log src\api\api.test.js:25
Done...
通过src\api\api.test.js
Api测试
√ 可以执行axios请求(39毫秒)
console.log src\api\api.test.js:15
来吧!
console.log src\api\api.test.js:23
承诺{}
console.log src\api\api.test.js:25
完成。。。
我如何测试一个简单的请求(无需模拟),这样我就可以得到一个响应,然后我可以询问它?我有一个很好的简单方法,也许你也会喜欢它。保持简单
`import axios from 'axios';
axios.get('url goes here')
.then(response =>{console.log(response)})`
可能会发现对您有帮助。因为
axios.get
会返回您应该指示返回的承诺
it('can perform an axios request', async () => {
const resp = await axios.get('api-endpoint');
expect(resp).toBeDefined();
});
或不带async
功能:
it('can perform an axios request', () => {
return expect(axios.get('api-endpoint')).resolves.toBeDefined();
});
在测试数据库中进行实际的api调用。并验证DbPankaj中的更改。感谢Pankaj,我已经尝试过了,但它没有完成并显示承诺。请尝试在状态中创建一个变量并将完整响应存储在那里。这就是我要寻找的。。。我不认为测试本身是一个匿名的方法,可以被定义为异步。谢谢