Skip to content

API reference / @backpack/testing / createMockedObject

Function: createMockedObject()

ts
function createMockedObject<T>(type, template?): MockedObject<T>;

Utility that creates a type-safe mock object based on the provided class definition, by patching all prototype methods with a Vitest-compatible spy function.

Type Parameters

Type Parameter
T

Parameters

ParameterType
typeClass<T> | AbstractClass<T>
template?Partial<T>

Returns

MockedObject<T>

Example

ts
import { describe, it } from "vitest";
import { createMockedObject } from "@backpack/testing";

import { MyService } from './my-service';
import { MyRepository } from './my-repository';

describe('MyService', () => {
  const repositoryMock = createMockedObject(MyRepository)
  const myService = new MyService(repositoryMock);

  afterEach(() => {
    repositoryMock.resetAll();
  })

  it('should invoke the repository only once', () => {
    myService.doSomething();

    expect(repositoryMock.save).toHaveBeenCalledOnce();
  });
})