Я пытаюсь проверить, было ли добавлено событие в методе init, вызываемом componentDidMount, но это событие будет добавлено, только если атрибут компонента установлен в значение "true", поэтому я хочу следить за addEventHandler метод и вызовите «toBeCalledWith ('eventName')», чтобы у меня было что-то вроде этого:
export interface IMyComponentProps{
flag?: boolean;
}
export class MyComponent extends Component<IMyComponentProps> {
private myProperty: HTMLElement;
public componentDidMount() {
this.init();
}
private init() {
if (this.props.flag) {
this.myProperty.addEventListener("event", arg2, arg3);
}
}
}
Тогда мой тест выглядит следующим образом:
test("Test 1", () => {
const spyInit = jest.spyOn(MyComponent.prototype, "init");
wrapper = mount(
<MyComponent />
);
expect(spyInit).toBeCalled();
})
, но тест выше не распространяется, если addEventListener вызывается или нет, поэтому я пытаюсь разными способами, например, следующим образом, безуспешно:
const spyAddListener = jest.spyOn(MyComponent.prototype, "myProperty.addEventHandler");
const spyAddListener = jest.spyOn(MyComponent.instance().myProperty, "addEventHandler");
const spyAddListener = jest.spyOn(MyComponent.prototype.myProperty, "addEventHandler");
какие-либо предложения?