Как протестировать вызов приватных методов внутри другого метода?
есть класс View с приватными методами initRangeSliderMargins и addListenersToThumbs которые должны вызываться в методе createRangeSlider
public createRangeSlider(settings: ISettings): View {
// code
this.initRangeSliderMargins(this.settings, this.slider);
this.updateRangeSliderValues(this.settings);
this.addListenersToThumbs();
}
тест
test('methods should be called', () => {
const view = new View('range-slider', settings);
const initRangeSliderMarginsSpy = jest.spyOn(view, 'initRangeSliderMargins');
const updateRangeSliderValuesSpy = jest.spyOn(view, 'updateRangeSliderValues');
const addListenersToThumbsSpy = jest.spyOn(view, 'addListenersToThumbs');
view.createRangeSlider(settings);
expect(initRangeSliderMarginsSpy).toBeCalled();
expect(updateRangeSliderValuesSpy).toBeCalled();
expect(addListenersToThumbsSpy).toBeCalled();
});
тест проходит, но в jest.spyOn подчеркивает 'initRangeSliderMargins' с ошибкой
No overload matches this call.
Overload 1 of 4, '(object: View, method: FunctionPropertyNames<Required<View>>): SpyInstance<number | void | View, [settings: ISettings] | ... 4 more ... | [data?: ...]>', gave the following error.
Argument of type '"initRangeSliderMargins"' is not assignable to parameter of type 'FunctionPropertyNames<Required<View>>'.
Overload 2 of 4, '(object: View, method: never): SpyInstance<never, never>', gave the following error.
Argument of type 'string' is not assignable to parameter of type 'never'.ts(2769)
и на 'addListenersToThumbs'
No overload matches this call.
Overload 1 of 4, '(object: View, method: FunctionPropertyNames<Required<View>>): SpyInstance<number | void | View, [settings: ISettings] | ... 4 more ... | [data?: ...]>', gave the following error.
Argument of type '"addListenersToThumbs"' is not assignable to parameter of type 'FunctionPropertyNames<Required<View>>'.
Overload 2 of 4, '(object: View, method: never): SpyInstance<never, never>', gave the following error.
Argument of type 'string' is not assignable to parameter of type 'never'.ts(2769)