【发布时间】:2017-12-02 10:05:52
【问题描述】:
我在使用 Jest 进行测试时遇到问题。我用create-react-app 做了一个反应应用程序并做了一些测试。现在,我所有使用模拟数据的测试都失败了。似乎jest.mock('../../../main/services/api');
没有模拟任何东西,正如您在下面的错误中看到的那样
TypeError: _ScheduleAPI2.default.addAvailability is not a function
at src/schedule/actions/scheduleActions.js:173:7183
at Object.dispatch (node_modules/redux-thunk/lib/index.js:11:18)
at Object.it (src/schedule/actions/__tests__/scheduleActions-test.js:361:18)
at runMicrotasksCallback (internal/process/next_tick.js:64:5)
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
测试示例:
import ScheduleAPI from '../../services/ScheduleAPI';
jest.mock('../../services/ScheduleAPI');
.
.
.
it('creates LOAD_MORE_APPROVED_APPOINTMENTS_FAILURE when loading more approved appointments fails', () => {
ScheduleAPI.fetchApprovedAppointments.mockImplementation(() => {
throw { status: 401, error: { error: 'unauthorized' } };
});
return store.dispatch(actions.loadMoreApprovedAppointments(A_DATE))
.catch(() => {
expect(store.getActions()).toEqual([
{ type: LOAD_MORE_APPROVED_APPOINTMENTS_REQUEST },
{ type: LOAD_MORE_APPROVED_APPOINTMENTS_FAILURE },
]);
});
});
最奇怪的是,这个测试通过了项目 CI 和同事。有谁知道为什么?
【问题讨论】:
标签: reactjs jestjs create-react-app