[Javascript] Hilo General

Leos

Algun consejo para hacer los tests de jest más rápidos?

Tenemos el backend en typescript, leyendo he visto que ts-jest es lento así que lo he cambiado a swc/jest pero los tiempos no han mejorado como esperaba

Tampoco encontramos el bottleneck... pensabamos que era el redis que usabamos para tests pero vimos que no, pensabamos que era el mongo in memory que tenemos para tests pero tampoco...

1 respuesta
Kartalon

#301 Evitar redundancias en el testeo y centrarse en test de integración desde la perspectiva del usuario, usando test unitarios sólo para la lógica más compleja.

https://kentcdodds.com/blog/how-to-know-what-to-test

2
B

¿Alguno/a controla de testear extensiones de navegador? Yo lo que hago ahora es una liada... levantar el servicio contra el que hacer las pruebas, construir el .zip de la extensión, usar selenium e instalar dicha extensión y ya lanzar los test que no es más que llamadas a métodos con su assert.

El driver de firefox, por lo que he visto no soporta recoger lo que tiene el log del navegador... entonces lo que hago es pillar por selenium el contenido del debug que escupe la extensión a un elemento HTML de la página y lo imprimo siempre al finalizar los tests para saber que ha pasado.

Me gustaría, al menos, dar con una forma limpia con la que pillar con selenium las excepciones que saltan. ¿Alguno/a controla del tema? También me sirven soluciones mejores que selenium para testear extensiones de navegador que conozcáis :D

12 días después
Wei-Yu

Ayer tuve una entrevista bastante decepcionante. Normalmente cuando me piden hacer tests en plataformas online los rechazo porque ya me he comido varios del mismo palo (preguntas de trivia y preguntas tricky que no aportan nada a nadie y encima con timers de 30 segundos - 2 minutos). Pero ayer me hicieron eso en la entrevista online técnica, sólo que de palabra así que me pillaron por sorpresa.

Una de las preguntas era qué logearía esto:

console.log("xx", () => `${this}`)

Yo respondí que this en ese contexto hacía referencia al propio closure y que pintaría la referencia a la función, pero el entrevistador me dijo que al no tener scope heredaría el scope superior (que me dejó bastante extrañado pero supuse que no le entendí bien).

Me ha dado por probar ahora en un repl e imprime lo que yo estoy pensando.

Hay algo que me estoy perdiendo?

5 respuestas
Zoko

#304

Tu respuesta es la correcta, ese entevistador no tiene ni puta idea.
Creo que el señor se estaba liando ya que si realmente quería tirar por el otro lado para ello necesitaría hacer algo así.

(() => {
  console.log(this);
})();

En ese caso si que pasaría lo que el cree que pasaría, pero es que la pregunta de que loguearía eso, pues obviamente si logueas una función que cojones cree que va a pasar?

Siento que te hayas encontrado con un notas así.

Wei-Yu

La verdad que tener o no razón en algo así me da algo igual, porque en el fondo estas cosas tampoco te aportan nada. La entrevista fue el 90% de cosas así y otras preguntas blandas y sin ganas como "qué opinión tienes de los design patterns? puedes hablar de alguno que uses con frecuencia?".

Con la pregunta del IIFE tampoco sé que respondería porque nunca lo había pensado así que tendría que razonarlo e ir intentando diagnosticar qué podría hacer el intérprete con eso, pero para mí es volver a lo mismo; son preguntas que no aportan nada a nadie.

1
Tuskus

#304 Pues lo que te han contestado,tu respuesta es la correcta.

Lifecasi0

#304 Yo pensé lo mismo que tú.

conDenao

Quiero hacerme un curso de Angular para ampliar conocimientos (que tengo muy basiquitos)

¿Cuál de estos 2 veis más completo?

https://www.udemy.com/course/angular-fernando-herrera/
https://www.udemy.com/course/angular-avanzado-fernando-herrera/

1 respuesta
Martita-

#309
El de maximilian si sabes ingles, y sino, aprendes ingles y luego el de maximilian.

2 1 respuesta
conDenao

#310 Sí, el de React lo hice de Maximiliam pero había leído buenas críticas de Fernando Herrera :p

1 respuesta
smarquezp

#311 A mi Fernando Herrera me parece un pedazo de profesor!

Es más, cuando aprendí Angular yo me hice su curso y acabe bastante contento. Ahora estoy con uno de React suyo también.

1 1 respuesta
conDenao

#312 Pues haré el de Fernando Herrera, ya que de Maximiliam ya hice otro curso y así tengo referencia de ambos para otros cursos, gracias!

1
JuAn4k4

#304 Yo creo que os equivocáis, te pinta por consola el global object, el padre vaya, que es el contexto superior. En La consola es global pero dentro de otro sitio será otra cosa. Eso pasa porque es una lambda.

RedSpirit

Yo creo que tienes razón y tal cuál está planteado lo único que te pinta en consola es la referencia a la función, te da igual lo que sea this. Me imagino que esto será un error del entrevistador y lo que le interesa es ver si sabes lo que es this, que en este caso es el objeto global, pero además como te mete el objeto en un template string por consola saldrá algo tipo [object Object] o similar. Una mierda de pregunta trivial y el tío aparentemente no tiene ni idea

EnderFX

#304 Creo que no entiendo la situación o el código del todo bien, o que se habló de distintas cosas.

Efectivamente, como dices, se imprime la referencia a la función (en Chrome, por ej, tu código loggea algo tal que xx () => ´${this}´).

Por otro lado, si se ejecutara esa función:

console.log("xx", (() => `${this}`)())

loggearía:

xx [object Window]

En cuyo caso el this no es una referencia al propio closure, si no al scope heredado (el valor de this) en el momento en el que se define la función flecha. En este caso, el código no se ejecuta dentro de ninguna otro objecto/scope si no que se ejecuta en el scope global, por lo que this === Window.

Parece que la pregunta va sobre la diferencia entre () => {} y function() {}.
(Lo siguiente, si sabes la diferencia entre arrow functions y functions, puedes pasar de ello)

spoiler

En todo caso, no parece un muy buen ejemplo con el console.log, lo podrían haber planteado mucho mejor.

PS: es tarde y puede que me haya explicado como el culo o metido varios gambazos

1
2 meses después
Wei-Yu

The new wave of Javascript web frameworks

https://frontendmastery.com/posts/the-new-wave-of-javascript-web-frameworks/

a pesar de tener el mismo título de siempre está entretenido

2 meses después
128

Conocéis algún tuto bueno sobre apply() call() y bind()?

Gracias