#unit-testing #vue.js #vuejs2 #vue-test-utils
#модульное тестирование #vue.js #vuejs2 #vue-test-utils
Вопрос:
Здравствуйте, я проверил поведение в приложении, и оно работает с api
теми же данными, что и в том, что я предоставляю в mocked вызове api Api.contracts.getContractDetails.mockImplementationOnce(() => ({ data }));
, однако значение hasWatermark
computed равно false
— хотя оно должно быть true .
Как я могу это отладить? Можно ли проверить вычисленное в тестах? Это мой тест:
function createWrapper() {
const i18n = new VueI18n({
locale: "en",
missing: jest.fn(),
});
return mount(EmployeeContract, {
i18n,
localVue,
store,
mocks: { $route: { query: {}, params: { id: "123" } }, $buefy: { toast: { open: jest.fn() } } },
stubs: ["spinner", "router-link", "b-switch"],
});
it("should add watermark for preview once it has rejected status", async () => {
const data = singleContract;
Api.contracts.getContractDetails.mockImplementationOnce(() => ({ data }));
const wrapper = createWrapper();
await flushPromises();
expect(wrapper.vm.hasWatermark).toBeTruthy();
});
Комментарии:
1. Вы можете отлаживать тесты локально в VS Code. Это не лучший опыт (пока), но, по крайней мере, вы можете устанавливать точки останова и видеть значения jestjs.io/docs/en/troubleshooting
2. Здесь недостаточно контекста для определения проблемы. Как это
hasWatermark
связано с созданным вами макетом? Что такоеsingleContract
?3. @tony19 это гигантский объект с измененным значением из вызова API. Дело в том, что он работает так, как ожидалось, в браузере, только тесты терпят неудачу.