Sinon: Документация для шпионажа и заглушки Getter / Setter

Созданный на 2 нояб. 2017  ·  10Комментарии  ·  Источник: sinonjs/sinon

Всем привет,

Есть ли где-нибудь в настоящее время документация о том, как использовать шпионские функции геттеров и сеттеров, описанные в # 1205? В противном случае я мог бы прочитать код и тесты и добавить их, если это необходимо. Я искал довольно много и нигде не нашел, я подумал, что спрошу. Спасибо.

Documentation Help wanted Property accessors pinned

Самый полезный комментарий

Он реализован, и я этим пользуюсь. Я выяснил, как это сделать, просмотрев тесты в №1205. Я нашел здесь тесты.

Делается это так:

spy = sinon.spy(className, 'nameOfGetterFunction', ['get'])

Это должно быть в документации? Или эта реализация пока еще не известна?

Все 10 Комментарий

Является ли это то , что вы искали?

Я также вижу это написанным, но оно кажется устаревшим (раньше было правдой):

Если вам нужно заглушить геттеры / сеттеры или нефункциональные свойства, вам следует использовать sandbox.stub

Теперь для этого можно использовать обычные заглушки.

Для заглушек, которые выглядят так. Я не знаю, есть ли что-нибудь для них в шпионских документах.

Хм ... На самом деле я не думаю, что шпионство было реализовано для геттеров / сеттеров. Я тоже не знаю почему. Реализация в основном будет примерно такой:

fn=Object.getOwnPropertyDescriptor(obj, prop).get
spy=sinon.spy(fn);
Object.defineProperty(obj, prop, { get: spy })

Хотите нанести удар?

Он реализован, и я этим пользуюсь. Я выяснил, как это сделать, просмотрев тесты в №1205. Я нашел здесь тесты.

Делается это так:

spy = sinon.spy(className, 'nameOfGetterFunction', ['get'])

Это должно быть в документации? Или эта реализация пока еще не известна?

Было бы здорово, если бы это было задокументировано, спасибо!

Обязательно выбью.

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время не было активности. Он будет закрыт, если больше не будет активности. Спасибо за ваш вклад.

Есть ли способ шпионить за ним без класса (непосредственно по объекту)?
У меня есть только объект в спецификации и я не могу требовать класс установщика геттера, есть ли другой способ?

@ mouse9 Непонятно, о чем вы спрашиваете, и как это связано с заглушкой / шпионажем за геттерами. Я тоже не понимаю, что вы подразумеваете под классами. Классы не имеют реального значения в javascript, и в большинстве случаев то, что вы считаете классами, не более чем объекты.

В любом случае мы стараемся, чтобы список проблем GitHub был аккуратным и сосредоточился на ошибках и обсуждениях функций. Этот билет выглядит как вопрос об использовании; опубликуйте его в StackOverflow и пометьте его sinon , чтобы более широкое сообщество могло помочь ответить на ваши вопросы.

Если вы чувствуете, что ваша тема является проблемой для Sinon, пожалуйста, откройте новую заявку и следуйте инструкциям по сообщению о проблеме .

Для кода @loganhuskins :
spy = sinon.spy(className, 'nameOfGetterFunction', ['get'])

Обнаружено, что в утверждении действительно нужно утверждать на spy.get, например:
sinon.assert.calledOnce(spy.get);

Ранее утверждалось только о шпионаже и не работало.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги