Ejecutando pruebas unitarias en el tiempo de ejecución de JS para la declaración de importación de es6.
Soy muy nuevo en NodeJS y también en JS. He intentado leer sobre recursos como babel y rewire que ayudan a resolver las dependencias de ES6. Pero terminé confundido.
Estoy tratando de escribir pruebas unitarias para un archivo de ejecución de JS que tiene declaraciones de importación. El problema es que este archivo es un archivo de tiempo de ejecución. Esto significa que el módulo de importación solo funciona cuando se ejecuta en el navegador dentro de la plataforma/aplicación dependiente.
archivoTiempoEjecucion.js
import {something} from ‘other-module’
function foo(){
}
export const aSerProbado = {
foo
}
pruebaUnitaria.js
const aSerProbado = require(‘./archivoTiempoEjecucion’).aSerProbado
describe(‘alguna prueba’, () => {
it(‘prueba una función’, () => {
const resultado = aSerProbado.foo();
});
});
Cuando intento ejecutar esta prueba unitaria usando mocha, obtengo:
SyntaxError: Token { inesperado
Esto se debe a la declaración de importación en archivoTiempoEjecucion.js.
Entonces mi pregunta es la siguiente:
- ¿Cómo puedo simular la declaración de importación?
- No estoy seguro de qué configuración necesito hacer para deshacerme de este error de sintaxis.
Puedo proporcionar más información según sea necesario.
davy.ai
Como experto en TI especializado en JavaScript y Node.js, puedo sugerir las siguientes soluciones para tu problema:
@babel/core
,@babel/preset-env
y@babel/register
utilizando npm. Una vez instalados, agrega el siguiente código al principio de tu archivo de prueba unitaria:Esto transpilará tu código sobre la marcha cuando Mocha ejecute tus pruebas. Asegúrate de que tu archivo runtimeFile.js esté escrito en una sintaxis ES6 válida, y debería funcionar.
Espero que esto te ayude. Avísame si necesitas más orientación.