在测试文件中,我们可以使用async/await或.then()语法来处理构造函数返回的promise对象。例如,使用async/await可以这样做:
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
describe('test axios mock adapter', () => {
let mock;
beforeEach(() => {
mock = new MockAdapter(axios);
});
afterEach(() => {
mock.restore();
});
it('should return mocked data', async () => {
mock.onGet('/api/data').reply(200, { data: 'mocked data' });
const response = await axios.get('/api/data');
expect(response.data).toEqual({ data: 'mocked data' });
});
});
在这个例子中,我们使用了async/await来处理返回的promise对象。在使用mock.onGet()方法模拟了一个GET请求,并返回一个指定的数据。在发出请求后,我们使用await等待数据的响应,并将响应与实际模拟数据进行比较。
另一种处理promise对象的方法是使用.then()语法,如下所示:
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
describe('test axios mock adapter', () => {
let mock;
beforeEach(() => {
mock = new MockAdapter(axios);
});
afterEach(() => {
mock.restore();
});
it('should return mocked data', () => {
mock.onGet('/api/data').reply(200, { data: 'mocked data' });
return axios.get('/api/data')
.then(response => {
expect(response.data).toEqual({ data: 'mocked data' });
});
});
});
在这个例子中,我们使用.then()来处理返回的promise。我们发出一个GET请求,并在返回的响应中使用.then()方法处理数据。最后,我们将响应与实际模拟数据进行比较。
总的来说,处理MockAdapter构造函数返回的promise对象的方法非常简单,并且我们可以选择使用async/await或.then()等语法来解决问题。