Настройка propsData
Когда вы создаете обертку для компонента с shallowMount
(или mount
), вы можете передать options
с начальнымpropsData
:
import MyComponent from "@/components/MyComponent";
//...
it('...', () => {
const wrapper = shallowMount(MyComponent, {
localVue,
propsData: {
ObjectWithStuffInIt
}
});
})
Вызов метода компонента
Оболочка обеспечивает доступ к экземпляру компонента через его свойство vm
, поэтому вы можете вызвать метод напрямуюс помощью:
wrapper.vm.doSomeWork()
Изменение свойства данных компонента
Аналогично, вы можете напрямую получить доступ к свойствам данных компонента:
wrapper.vm.foo = 'diddly'
В целом ваш тест может выглядеть примерно так:
import { createLocalVue, shallowMount } from "@vue/test-utils";
import MyComponent from "@/components/MyComponent";
describe("MyComponent", () => {
it(" When foo is set to -diddly- then set bar to true ", () => {
const ObjectWithStuffInIt = [
{ id: 200, bar: false },
{ id: 300, bar: false }
];
const localVue = createLocalVue();
const wrapper = shallowMount(MyComponent, {
localVue,
propsData: {
ObjectWithStuffInIt
}
});
wrapper.vm.foo = "diddly";
// run the method in the component here
wrapper.vm.doSomeWork();
expect(ObjectWithStuffInIt[0].bar).toBe(true);
});
});
демо