Echemos un vistazo a las capacidades de espionaje y simulación de bajo nivel, comparando SignOn y Jest. En el lado izquierdo, tenemos SignOn. En el lado derecho, tenemos Jest. SciSpy versus JeftSpyOn tienen APIs similares, tomando un objeto y un método. Para haber sido llamado notación de punto versus sintaxis de camel case, APIs similares, tenemos algunas alternativas en el lado de SignOn, pero hacen lo mismo.
Emparejando cadenas o esperando cualquier cosa, eso también es una comparación uno a uno. Comparadores personalizados, tienes estas conveniencias en el lado de SignOn y son bastante fáciles de usar y directas. Es posible hacer lo mismo en el lado de Jest, pero lleva un poco de trabajo, así que tienes que crearlos tú mismo si quieres tener comparadores personalizados. Por eso no los ves demasiado a menudo.
Asyngonist testing, ser capaz de crear el espía es prácticamente lo mismo en ambos lados. En el lado de Cypher, puedes envolver la promesa, el side wrap, y luego hacer una afirmación directamente sobre ella. En el lado de RTL, tienes que reunir todas las promesas primero y luego hacer una promesa de todas. De esa manera, puedes verificar el orden de ellas, por lo que la primera llamada es 4 y 5, la segunda llamada es 1 y 90, sumando estas cosas. En el lado de Cypher, se infiere porque llamamos a esta primera, por lo que debería ser llamada primero, y luego llamamos a esta segunda, que debería ser llamada segunda. Son ligeramente diferentes en las pruebas asíncronas testing pero al final, de nuevo, logramos lo mismo.
Hagamos un contraste y echemos un vistazo a los stubs y los mocks. CyStub es directamente comparable a JestFn para poder simular algo, métodos de objeto similares a la API de CySpy, con Jest, aunque ligeramente diferente. Todos estamos acostumbrados a las implementaciones de simulación y cómo lo hacemos, pero viene de, hey, ¿es esto un espía o es realmente un mock? En Jest, así es como lo hacemos. Nos hemos acostumbrado a ello, lo hemos estado haciendo todo el tiempo, así que es fácil de entender. A veces me confundo con la diferencia entre la implementación de mock versus el valor de retorno de mock pero cuando lo cambias al lado de Cynos, está claro. El valor de retorno de mock es un extra, asegurándote de que estás devolviendo un cierto método de la simulación del método. Cuando tratamos con promesas y hacemos las cosas un poco más sofisticadas, con Cynon tenemos algunas abstracciones agradables. Método de objeto siendo llamado con var return foo, es agradable y declarativo. Haciendo lo mismo en el lado de Jest, cediendo el argumento, condicional. Sí, es un poco de trabajo, pero es posible. Siguiendo una promesa, de nuevo, bien abstraída. Es posible en el lado de RTL, pero lleva un poco de trabajo. Rechazando una promesa, de nuevo, el mismo enfoque. Pero en la comunidad de React, nos hemos acostumbrado a estas formas difíciles de trabajar con Jest. Hemos construido cierta experiencia en esto, así que definitivamente va a haber algún interés adquirido allí.
Comments