Estoy escribiendo algunas pruebas contra un juego de cartas que hice en JS usando Jest.
Escribí dos pruebas hasta ahora; uno prueba que se crea una baraja de 52 cartas y el otro prueba si el jugador obtiene dos cartas en la ronda inicial:
const { Deck, Player} = require("./cardgame") let deck = new Deck() deck = deck.createDeck() let player = new Player() player.openinghand(deck) test('Expects Deck to have 52 cards', () => { expect(deck.length).toBe(52); }); test('Expects Players opening hand to have 2 cards', () => { expect(player.hand.length).toBe(2) });Entonces, cuando ejecuto la prueba, solo pasa la segunda. Entiendo por qué está fallando porque la longitud del mazo ya no es igual a 52. ¿Jest ejecuta todas las pruebas simultáneamente y no en el orden en que están escritas? ¿Cómo haría para que esto pasara ambas pruebas?
Las pruebas unitarias deben ser idempotentes . Independientemente del orden de ejecución y cuántas veces se ejecute, el resultado debería ser el mismo.
Debe asegurarse de que el entorno de prueba, el doble de prueba y los datos de prueba sean independientes para cada caso de prueba.
Según su código, parece que esos dos casos de prueba comparten datos de prueba. Esto puede generar el riesgo potencial de que un caso de prueba que lo modifique afecte a otro caso de prueba.