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

111
Views
Burlándose del método push() de vue-router en pruebas unitarias - Vue 3

Soy nuevo en Vue y StackOverflow, pero intentaré explicar mi problema.

Obtengo un TypeError cuando intento ejecutar la prueba unitaria para mi aplicación.

"TypeError: no se pueden leer las propiedades de undefined (leyendo 'push')"

https://i.stack.imgur.com/pqUkZ.png

El programa se ejecuta exactamente como debería, de lo contrario, es solo la prueba la que falla.

La prueba intenta ejecutar $router.push en la aplicación, pero no puede, porque no sabe qué es eso. ¿Cómo puedo simular con éxito el método de inserción durante la prueba?

Mi código de prueba example.spec.js se ve así:

 import { shallowMount } from '@vue/test-utils' import LoginView from '@/views/LoginView.vue' describe('LoginView.vue', () => { it('loginSuccess-test', async () => { const wrapper = shallowMount(LoginView, { mocks: { $router: { push: () => {} } } }) await wrapper.setData({username:'user', password:'pass'}) await wrapper.find('button').trigger('click') const statusId = wrapper.find('#loginstatusLabel'); expect(wrapper.find('#loginstatusLabel').element.textContent).toBe('true') }) })

Mi código de métodos LoginView.vue se ve así:

 methods: { checkCredentials() { if (this.username === 'user' && this.password === 'pass') { this.loginSuccess = 'true'; this.$router.push({ name: 'home' }); } else { this.toast.error("Username or password is incorrect Try again"); this.message = 'Login failed!'; this.isActive = false; } } </script>

Estoy tratando de hacer que el método push redirija al usuario a "casa" cuando inicie sesión correctamente y se burle de la redirección en las pruebas.

cualquier ayuda será apreciada

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Prueba esto:

 mocks: { $router: { push: jest.fn(), } }

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!