что то не очень получается, есть вот такой компонент
<template>
<button @click="fetchResults">Отправить</button>
</template>
<script>
import axios from "axios";
export default {
data() {
return {
value: null,
};
},
methods: {
async fetchResults() {
const { data } = await axios.get(
"https://jsonplaceholder.typicode.com/todos/1"
);
this.value = data;
},
},
};
</script>
И вот такой тест
import { mount } from "@vue/test-utils";
import Async from "../src/components/Async.vue";
jest.mock("axios", () => ({
get: () => Promise.resolve({ data: "value" }),
}));
it("делает асинхронный запрос при нажатии кнопки", () => {
const wrapper = mount(Async);
wrapper.find("button").trigger("click");
expect(wrapper.vm.value).toBe("value");
});
Хочу замокать axios, но в тесте возврашается null, что я не так сделал?
Я конечно не “парни”, но 1) вы не дожидаетесь ресолва промиса в тесте 2) проверять wrapper.vm - плохой тон, проверяйте, что рендерится в темплейте
Обсуждают сегодня