No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

0D
17H
9M
32S

Mocking

18/27
Recursos

Aportes 5

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

// Creamos el libro fake que ser谩 devuelto por el mock

const fakeBooks = [
  {
    _id: 1,
    name: 鈥楬arry Potter鈥,
  },
];

// Suplanta a nuestra mongoLib real

const mongoLibStub = {
  getAll: () 鈬 [鈥akeBooks],
c. reate: () 鈬 {},
}

// Suplantamos al m茅todo

jest.mock(鈥欌/lib/mongo.lib鈥, () 鈬 jest.fn().mockImplementation(() 鈬 mongoLibStub))

Conforme avanza el curso me siento poderoso 馃槃

Tengo una duda: 驴Por qu茅 manda a llamar a jest.ClearAllMocks() dentro de beforeEach()?

Es decir, el c贸digo del profe funciona, sin embargo si yo lo hubiese tenido que realizar, mi l贸gica me dir铆a que lo pusiera dentro de afterAll por otro lado mi l贸gica me dice que el c贸digo del profe deber铆a fallar y sin embargo no lo hace, no entiendo por qu茅?

NOTA: Intent茅 publicar esto como pregunta, pero no me dej贸 pues me indicaba que la pregunta ya hab铆a sido hecha y contestada, sin embargo las respuestas que me ofrec铆a eran sobre algo totalmente diiferente

Mocking

Suplantando MongoLib

Se utilizo el m茅todo jest.mock, al cual se le indica la clase que va suplantar

jest.mock('../lib/mongo.lib', () => jest.fn().mockImplementation(() => MongoLibStub));

Para eso se crea la clase MongoLibStub, en la cual se contendr谩n los m茅todos getAll, y create los cuales servir谩n para retornar un resultado similar a la clase original.

const MongoLibStub = {
  getAll: () => fakeBooks,
  create: () => { },
};

fakeBooks hace referencia a un arreglo de objetos de tipo Book ficticios, los cuales ser谩n retornados por el m茅todo getAll.

const fakeBooks = [
  {
    _id: '1',
    name: 'Harry Potter',
  },
  {
    _id: '2',
    name: 'Principito',
  },
];

Con esto ya se suplantar铆a el comportamiento de la clase MongoLib y sus m茅todos, es importante mencionar que la clase MongoLibStub puede crecer con forme se necesite.

Se aconseja como buena practica utilizar el m茅todo clearAllMocks() de jest para hacer una limpia de los mocks creados anteriormente.

jest.clearAllMocks();
test("should return books", async () => {
    const books = await service.getBooks();

    expect(books).toBeTruthy();
    expect(books.length).toBe(1);
    expect(books[0].name).toBe("harry potter");
  });