Vue.js unit: test: Есть ли способ издеваться над плагином проверки Vee-Validate? - PullRequest
0 голосов
/ 17 октября 2018

Я тестирую компонент формы, все поля проверяются с помощью vee-validate В настоящее время я внедряю в монтируемую оболочку валидатор

import VeeValidate from "vee-validate";

Vue.use(VeeValidate, { errorBagName: "errors" });

describe("ContactForm.vue", () => {
 const v = new VeeValidate.Validator();

 beforeEach(() => {
  options = {
        sync: false,
        provide: () => ({
          $validator: v
        })
 };
 wrapper = shallowMount(ContactForm, options);
});

$validator имеет некоторые функции, такие как: init(), localize(), validateAll() , reset(), ..., чтоЯ мог бы обойти в некоторых из моих тестов

Есть ли в любом случае, чтобы высмеивать такие validator с Jest функциями?

спасибо за отзыв

1 Ответ

0 голосов
/ 02 декабря 2018

Вы пытались использовать заглушки своих функций, используя sinon ?Они упомянули, что в vue test utils с setMethods.

это может выглядеть так:

import { mount } from '@vue/test-utils'
import sinon from 'sinon'
import ContactForm from './ContactForm.vue'

const wrapper = mount(ContactForm)
const submit = wrapper.find('button')
const validateStub = sinon.stub()

allInputs.setMethods({ validateAll: validateStub })
submit.trigger('click')
expect(validateStub.called).toBe(true)

Так что вы сможете узнать, если validateAllметод вызывается, когда вы отправляете форму, например.Или вы можете попробовать спросить на github / VeeValidate

...