![translation](https://cdn.durumis.com/common/trans.png)
Dies ist ein von KI übersetzter Beitrag.
Sprache auswählen
Von durumis AI zusammengefasster Text
- Es ist wichtig, externe Abhängigkeiten für Unit-Tests zu entfernen.
- Der Prisma Client von Prisma ORM kann einfach mit dem Paket jest-mock-extended gemockt werden.
- Das Mocken hat die Erstellung von Unit-Tests vereinfacht.
Grundsätzlich sollten Anwendungseinheitentests isoliert ausgeführt werden. Daher ist es empfehlenswert, externe Abhängigkeiten wie Netzwerk-E/A oder Datenbanken zu entfernen, die sich auf die Testergebnisse auswirken könnten.
Ich verwende in diesem Toy-Projekt Prisma ORM. Deshalb schreibe ich diesen Beitrag, um zu dokumentieren, wie man Prisma Client einfach zum Testen von Einheiten mockt.
Installation des jest-mock-extended-Pakets
Installieren Sie das Paket, das auch in der offiziellen Prisma-Dokumentation empfohlen wird, mit dem obigen Befehl.
Prisma Client-Mocking
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);
Einheitentest-Beispielcode
describe('create', () => {
it('Wenn die Benutzererstellung erfolgreich ist, sollten Benutzerinformationen zurückgegeben werden.', 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',
});
});
Nach dem Mocking wurde auch die Typisierung unterstützt, was das Schreiben von Einheitentests sehr einfach machte.