Sinon sandbox (или sinon
экземпляр) передается извне в область сценария. Внутренняя функция (а не метод) может быть необязательно шпионила/заштрихована с песочницей Sinon.Restore spied/stubbed функция с песочницей Sinon
Sinon участвует в каком-то обезвреживании обезьян (не модульное тестирование). Концепция песочницы Sinon очень хорошо подходит для использования - до этого момента.
Исходя из того, что функция spy не может быть заменена методом spy. Это не идеальный сценарий, но дизайн не может быть изменен.
const originalCallback = callback;
callback = sinonSandbox.spy(callback);
thirdPartyFn(callback);
// how can this be achieved?
// sinonSandbox.onRestore(() => thirdPartyFn(originalCallback));
Как приложение может быть уведомлено о восстановлении песочницы для восстановления функции шпионажа? Есть ли крючок, который будет запущен на мероприятии «восстановить»? Существуют ли сторонние расширения Sinon, которые могут помочь?
Я надеялся избежать этого, но да, это выглядит, как будто это все о обезьяньего заплат. Кстати, я считаю, что это должно быть 'originalRestore.call (sinonSandbox)' (не уверен в аргументах, но похоже, что 'restore' не имеет некоторых). – estus
Да, ты прав :) – LoremIpsum