Похоже, что вы хотите проверить, что handleError
вызывается при запуске build
.
Приватные методы компилируются в обычные методы-прототипы JavaScript, поэтому вы можете использовать тип any
, чтобысоздание шпиона проходит проверку типа TypeScript.
Вот очень упрощенный пример:
class OrderBuilder {
public build() {
this.handleError()
}
private handleError() {
throw new Error('missing ... field in order')
}
}
describe('Order Builder', () => {
it('should test the handleError', () => {
const handleErrorSpy = jest.spyOn(OrderBuilder.prototype as any, 'handleError');
const orderBuilder = new OrderBuilder()
expect(() => orderBuilder.build()).toThrow('missing ... field in order'); // Success!
expect(handleErrorSpy).toHaveBeenCalled(); // Success!
});
});