Поэтому после того, как я прочитал общие советы и посмотрел видео о тестировании , предоставленное Vue.js, я решил протестировать только поведение моих компонентов. Но я, возможно, неправильно понимаю концепцию. Вот этот компонент:
<template>
<es-btn
class="a"
round
outline
color="primary"
@click="skipScan"
>
Skip Upload
</es-btn>
</template>
<script>
export default {
data: () => ({
uploadScanningDialog: false,
}),
methods: {
// public functions here which will be tested
skipScan() {
hideDialog();
triggerSkipScan();
},
},
}
// private functions here as vue.js suggests
function hideDialog() {
this.uploadScanningDialog = false;
}
....
</script>
Я хочу проверить поведение:
it('should hide itself and show next dialog when Scan Button is clicked', () => {
const data = {
uploadScanningDialog: true,
};
wrapper.setData(data);
expect(wrapper.vm.uploadScanningDialog).toBeTruthy();
wrapper.find('.a').trigger('click');
expect(wrapper.vm.uploadScanningDialog).toBeFalsy();
});
Итак, вот вопросы и ошибки:
Должен ли я выполнить этот тест, запустив действие вместо вызова самого метода? Потому что раньше я проверял, вызывая метод и ожидая некоторых результатов, а не вызывая компонент, который вызывает метод
Разве я не должен проверять частные функции? Поскольку мой тест пытается вызвать реальный метод, тест, которым я делюсь, получает ошибку. Я буду издеваться над ними, но я не уверен, как продолжить