Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

116
Views
Activación de un evento de envío que no actualiza el recuento de llamadas en Jest + Vue Test Utils

En Vue 2.6.12 con Jest: "^27.5.1" y "@vue/test-utils": "^1.3.0", intento simular un método async usando jest. Cuando afirmo que mi método ha sido llamado 1 vez, devuelve que no ha sido llamado. ¿Estoy haciendo algo descaradamente mal?

Actualizar prueba de correo electrónico

 import {mount} from '@vue/test-utils'; import UpdateEmail from './components/update-email.vue'; //validate form method testing test('should submit form', async () => { let wrapper = mount(UpdateEmail); const mockedFormSubmit = jest.spyOn(UpdateEmail.methods, 'updateEmail'); // //Get our form fields await wrapper.find('#email').setValue('johndoe@test.com') await wrapper.find('#password').setValue('MyPassword'); await wrapper.find('form').trigger('submit.prevent'); expect(mockedFormSubmit).toHaveBeenCalledTimes(1); });

Actualizar método de correo electrónico

 async updateEmail() { this.validateFields(); try { await axios.post(this.updateEmailPath, { password: this.password, email: this.email }); } catch (e) { console.log(e.message); } },

Salida en la consola cuando se ejecuta la prueba:

 expect(jest.fn()).toHaveBeenCalledTimes(expected) Expected number of calls: 1 Received number of calls: 0 35 | await wrapper.find('form').trigger('submit.prevent'); 36 | > 37 | expect(mockedFormSubmit).toHaveBeenCalledTimes(1); | ^ 38 | }); 39 | });
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para Vue 2, se debe simular el método antes de montar el componente porque los .methods del componente se conectan solo durante el montaje:

 test('should submit form', async () => { const mockedFormSubmit = jest.spyOn(UpdateEmail.methods, 'updateEmail'); ✅ let wrapper = mount(UpdateEmail); // const mockedFormSubmit = jest.spyOn(UpdateEmail.methods, 'updateEmail'); ❌ ⋮ });

manifestación

En Vue 3, los métodos se pueden simular después del montaje directamente desde wrapper.vm (a partir de Vue 3.2.31).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!