![translation](https://cdn.durumis.com/common/trans.png)
To jest post przetłumaczony przez AI.
Wybierz język
Tekst podsumowany przez sztuczną inteligencję durumis
- Usunięcie zależności zewnętrznych jest ważne w celu przeprowadzenia testów jednostkowych.
- Klient Prisma Prisma ORM można łatwo zmockować za pomocą pakietu jest-mock-extended.
- Pisanie testów jednostkowych stało się łatwiejsze po zmockowaniu.
Zasadą jest przeprowadzanie testów jednostkowych aplikacji w izolacji, dlatego warto usunąć zewnętrzne zależności, takie jak operacje wejścia/wyjścia w sieci lub bazy danych, które mogą wpływać na wyniki testu.
Tworzę ten wpis, aby zarejestrować sposób prostego mockowania klienta Prisma w celu testowania jednostkowego, ponieważ w moim aktualnym projekcie zabawkowym używam Prisma ORM.
Instalacja pakietu jest-mock-extended
Powyższe polecenie instaluje pakiet zalecany w oficjalnej dokumentacji Prisma.
Mockowanie klienta Prisma
describe('UserService', () => {
let service: UserService;
let prismaMock: DeepMockProxy;
beforeEach(async () => {
prismaMock = mockDeep();
const module: TestingModule = await Test.createTestingModule({
providers: [
UserService,
{
provide: PrismaService,
useValue: prismaMock,
},
],
}).compile();
service = module.get(UserService);
Przykładowy kod testu jednostkowego
describe('create', () => {
it('po udanym utworzeniu użytkownika należy zwrócić informacje o użytkowniku.', async () => {
// Arrange
const newUser = {
email: 'test@test.com',
password: 'test1234',
};
prismaMock.user.create.mockResolvedValue({
id: 1,
email: 'test@test.com',
password: 'test1234',
});
// Act
const result = await service.create(newUser);
// Assert
expect(result).toEqual({
id: 1,
email: 'test@test.com',
password: 'test1234',
});
});
Po mockowaniu, dzięki obsłudze typów, pisanie testów jednostkowych było znacznie wygodniejsze.