Я пытаюсь настроить тесты для компонента vue collector
, который импортирует модуль Javascript для сбора некоторых данных.
компоненты / collector.vue
<script>
import dataService from '@/services/dataService.js';
...
dataService.collectResults().then(results => {
this.data = results;
});
</script>
Файл JavaScript:
Услуги / dataService.js
let dataService = {
collectResults() {
[...]
return dataPromise;
}
[...]
}
export default dataService;
Я использую jest
для тестов для компонента collector
и пытаюсь смоделировать метод collectResults
.
collector.spec.js
jest.mock('dataService');
import { mount } from '@vue/test-utils';
import collector from '@/components/collector.vue';
import VueRouter from 'vue-router';
describe('behaviour tests', () => {
let cmp;
beforeEach(() => {
Vue.use(VueRouter);
const router = new VueRouter();
cmp = mount(collector, {
router
});
it('dummy test', () => {
console.log(cmp.vm.data);
}
услуги / __ издевается __ / dataService.js
const dataServiceMock = jest.genMockFromModule('dataService');
function __collectResults() {
return new Promise(() => {
console.log('mocked!');
[...]
});
}
dataServiceMock.collectResults = __collectResults;
export default dataServiceMock;
Однако при запуске тестов выполняется оригинальный файл dataService.js
(что в моем случае приводит к исключению).
Каким должен быть правильный подход к этому случаю, если учесть, что я должен смоделировать ~ 10 функций, оставляя других такими, какие они есть?