Я провожу некоторое тестирование с помощью фреймворка Jasmine и хочу следить за методом публикации в пабе, который я использую. Однако метод публикации срабатывает дважды, и я хочу шпионить за ним только во второй раз. Я попытался просто скопировать метод publish
в другой метод, а затем шпионить за оригинальным методом, например:
pubsub.publishCopy = pubsub.publish;
spyOn(pubsub, "publish");
// this call has another call to pubsub.publish. it is this
// 2nd pub sub call that I want to spy on
pubsub.publishCopy(args);
// this shows an error because the pubsub.publishCopy is 'pointing to
// pubsub.publish instead of being a new function with the same functionality
expect(pubsub.publish).toHaveBeenCalledWith(differentArgs);
Однако все, что я делаю, - это просто ссылаюсь на метод pubsub.publish
, когда я вызываю pubsub.publishCopy
, что приводит к ошибке в моем тесте. Как правильно скопировать метод публикации в соответствии с моими потребностями?