Configuración de unit tests en Vue con webpack
Clase 52 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
CLI y Dev Tools
- 3

Instalación de Vue.js: Node, Dev Tools y CLI
06:13 min - 4

Crear una aplicación Vue con CLI y webpack
12:49 min - 5

Cómo funciona webpack.config.js
10:38 min - 6

Babel: transpilador de JavaScript moderno
05:06 min - 7

ESLint con Standard JS: linteo automático en webpack
15:34 min - 8

Configuración de Sass y Bulma en Vue
06:18 min - 9

Cómo configurar Pug en Vue con webpack
04:23 min - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 min - 11
Creación de Vistas con Mockups y Vue.js
00:32 min
Manipulación del DOM
- 12

Expresiones en Vue: sintaxis doble llave
03:49 min - 13

Diferencia entre v-show y v-if en el DOM
06:22 min - 14

Qué es data binding en Vue.js
04:11 min - 15

Computed properties en Vue.js: cómo crearlas
04:13 min - 16

Qué son los watchers de Vue
02:25 min - 17

Eventos Vue: directiva v-on y métodos format
06:12 min - 18

Cómo construir una interfaz de búsqueda completa en Vue
19:03 min - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00 min
REST y HTTP
Sistema de Componentes
- 23

Cómo crear componentes en Vue
08:46 min - 24

Componentes Layout en Vue con Bulma
09:50 min - 25

Reactividad en Vue: $set y Object.assign
06:14 min - 26

Hooks del ciclo de vida en Vue.js
05:38 min - 27

Comunicación padre-hijo con props en Vue
23:27 min - 28

Eventos en Vue: comunicar hijo a padre
12:04 min - 29

Slots: HTML dinámico en componentes Vue
13:42 min - 30

Plugin Event Bus: comunicar componentes sin relación en Vue
19:19 min
Vue Router
Extendiendo VueJS
Clases, Animaciones y Transiciones36
Vuex
- 39

Cómo Vuex centraliza estados en Vue
03:41 min - 40

Instalación de Vuex con estado único
17:32 min - 41

Cómo usar mutations y commit en Vuex
08:16 min - 42

Getters de Vuex: mapGetters y store sincronizado
07:35 min - 43

Cómo dispatch ejecuta actions asincrónicas en ViewX
07:54 min - 44

Instalación de Viewex en Platzi Music
26:37 min
Nuxt.js
Deploy a Producción con Now
Conclusiones
Bonus
Comienza a crear unit tests confiables en Vue.js sin pelear con configuraciones manuales. La plantilla completa de webpack para Vue integra de fábrica Babel, ESLint, Karma, Mocha y soporte para archivos .vue, lo que agiliza el arranque y garantiza resultados consistentes durante el desarrollo.
¿Cómo iniciar unit tests en Vue con plantilla webpack?
Usar el template completo de webpack simplifica el setup: incluye linteo con ESLint, opciones de runtime y compiler, y el armado de unit tests. Es ideal cuando ya tienes algo de experiencia con el ecosistema de Vue y quieres evitar configurar todo a mano. Dentro del proyecto, verás más archivos: carpetas de build, un dev server en Node y Express, y la sección de tests lista para usar.
- Selecciona el template webpack y habilita el setup de unit tests.
- Puedes omitir el router y el end-to-end testing si no lo necesitas.
- La carpeta Test/Unit incluye la configuración inicial.
- La experiencia de desarrollo en src se mantiene igual: compones Vue como siempre.
Comandos clave:
# Crear el proyecto con el template webpack
vue init webpack ut-demo
# Instalar dependencias y entrar al proyecto
cd ut-demo
npm install
# Ejecutar los unit tests
npm run unit
¿Qué roles cumplen Karma, Mocha y Chai en los tests?
La configuración incluye un archivo de Karma (test runner) que orquesta la ejecución de los tests, integra webpack y Babel para compilar .vue y JS, y define en qué browsers se corre. Así puedes validar en Chrome, Safari, Firefox, Internet Explorer y también en Phantom JS para desarrollo en terminal.
- Karma: no es un framework de pruebas; es el corredor de tests que los ejecuta en múltiples contextos.
- Mocha: el framework que define la estructura semántica con describe e it.
- Chai: la librería de assertions para expresar expectativas con expect y comparadores como toEqual.
- Integración con webpack y Babel: compila y resuelve .vue para que los tests usen el mismo pipeline que la app.
Beneficio clave: confiabilidad multiplataforma. Puedes correr rápido en Phantom JS durante el desarrollo y, antes de producción, validar en todos los browsers soportados.
¿Cómo escribir y ejecutar casos de prueba en un componente?
Un spec de ejemplo valida el componente por defecto Hello. Primero se monta el componente y se verifica que el H1 renderice el contenido correcto. Luego, se agrega un caso adicional para comprobar el valor en data().message, asegurando que el dato base coincide con lo que se muestra.
Estructura típica con Mocha y Chai:
// tests/unit/specs/Hello.spec.js
import Hello from '@/components/Hello.vue'
describe('Hello.vue', () => {
it('should render correct content', () => {
// Monta el componente y verifica el H1.
// ... montaje del componente ...
// expect(wrapper.find('h1').text()).toEqual('Welcome ...')
})
it('should has the correct text', () => {
// Valida el dato base en data().
expect(Hello.data().message).toEqual('Welcome ...')
})
})
Puntos prácticos que verás en la ejecución con npm run unit:
- Salida clara por spec y por it: verde cuando todo pasa.
- Resumen de cantidad de tests y cobertura de líneas de código.
- Compilación previa: se procesa toda la app con webpack y Babel antes de testear.
Habilidades y conceptos que refuerzas:
- Estructurar pruebas con describe para agrupar funcionalidades e it para casos puntuales.
- Escribir assertions con expect y comparadores como toEqual.
- Probar render y estado: contenido del H1 y valor en data().message.
- Usar package.json para scripts como npm run unit.
- Configurar Karma para browsers múltiples y un flujo rápido con Phantom JS en desarrollo.
¿Te gustaría ver ejemplos con tu propio componente o ajustar la configuración de Karma a tus browsers objetivo? Comparte tus dudas y cuéntame tu caso.