// add.js const add = (a, b) => a +b;¿Cómo puedo probar la función de agregar? Quiero probar agregar lógica de función. Pero no sé cómo probarlo. Porque la función no se exporta. Quiero que esta función se llame solo en add.js.
¿Tengo que exportar esta función de agregar para probar con broma?
Hay mucho debate sobre este tema. Si su función de add no se exporta, se considera "privada/interna" para su módulo y no es parte de la API pública. Mucha gente argumenta que solo debe probar su API pública, otros argumentan que necesitará exportar sus funciones privadas si desea probarlas. Ambos lados hacen grandes puntos y se reduce a una cuestión de preferencia.
Mi técnica preferida es colocar este tipo de funciones auxiliares en un módulo separado que se prueba por separado y se importa donde lo necesite. Estos métodos se vuelven "públicos", pero en la práctica descubrí que no daña nada y que en realidad podría terminar reutilizando el código en otro lugar sin necesidad de refactorizar nada.
También puede intentar exportar sus métodos, pero márquelos como @private usando la popular sintaxis JSDoc . Esto es simplemente una sugerencia para los desarrolladores de que no deben importar o usar el método, y algunos editores/IDE pueden incluso ocultar el método de intellisense.
/** @private */ export const add = (a, b) => a + b;Al final del día, realmente no puede probar métodos privados (no exportados) sin usar alguna herramienta como rewire . Solía usar mucho el recableado, sin embargo, ya no lo recomiendo, ya que hace que las pruebas sean más complejas y frágiles. Descubrí que las buenas pruebas son simples y fáciles de leer, lo cual no es el caso cuando usa cosas como rewire. No se deje atrapar por la trampa de "los desarrolladores no deberían poder ver o usar esta función privada": es una forma tóxica de pensar en su código IMO.