Sinon: Documentation pour l'espionnage et le stubbing Getter / Setter

Créé le 2 nov. 2017  ·  10Commentaires  ·  Source: sinonjs/sinon

Salut à tous,

Existe-t-il actuellement de la documentation sur l'utilisation des fonctionnalités d'espionnage getter et setter décrites dans # 1205? Sinon, je pourrais lire le code et les tests et l'ajouter si nécessaire. J'ai cherché assez dur et je ne l'ai vu nulle part, je pensais que je demanderais. Merci.

Documentation Help wanted Property accessors pinned

Commentaire le plus utile

Il a été implémenté et je l'utilise. J'ai découvert comment en parcourant les tests du # 1205. J'ai trouvé les tests ici .

C'est fait comme ceci:

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

Cela devrait-il figurer dans la documentation? Ou est-ce que cette mise en œuvre n'est même pas connue à ce stade?

Tous les 10 commentaires

Est - ce

Je vois aussi ceci écrit, mais cela semble obsolète (c'était vrai auparavant):

Si vous avez besoin de stub getters / setters ou de propriétés non fonctionnelles, vous devriez utiliser sandbox.stub

Les stubs normaux peuvent être utilisés pour cela maintenant.

Pour les talons qui y ressemblent. Je ne sais pas s'il y a quoi que ce soit dans les documents d'espionnage pour eux.

Hmm ... Je ne pense pas que l'espionnage ait été implémenté pour les getters / setters. Je ne sais pas vraiment pourquoi non plus. La mise en œuvre serait essentiellement quelque chose comme ceci:

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

Voulez-vous essayer?

Il a été implémenté et je l'utilise. J'ai découvert comment en parcourant les tests du # 1205. J'ai trouvé les tests ici .

C'est fait comme ceci:

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

Cela devrait-il figurer dans la documentation? Ou est-ce que cette mise en œuvre n'est même pas connue à ce stade?

Ce serait formidable de l'avoir documenté, merci!

Bien sûr, je vais l'assommer.

Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.

Existe-t-il un moyen de l'espionner sans classe (directement par objet)?
Je n'ai qu'un objet dans la spécification et je ne peux pas exiger la classe du setter getter. Y a-t-il un autre moyen également?

@ mouse9 On ne sait pas ce que vous demandez, et en quoi cela est lié au stubbing / espionnage des getters. Je ne comprends pas non plus ce que vous entendez par cours. Les classes n'ont aucune signification réelle en javascript et, à bien des égards, ce que vous considérez comme des classes ne sont rien de plus que des objets.

Dans tous les cas, nous essayons de garder la liste des problèmes GitHub bien rangée et concentrée sur les bogues et les discussions sur les fonctionnalités. Ce ticket ressemble à une question d'utilisation; veuillez le poster sur StackOverflow et le taguer avec sinon , afin que la plus grande communauté puisse vous aider à répondre à vos questions.

Si vous pensez que votre sujet pose un problème avec Sinon, veuillez ouvrir un nouveau ticket et suivre les instructions pour signaler un problème .

Pour le code de @loganhuskins :
spy = sinon.spy(className, 'nameOfGetterFunction', ['get'])

Trouvé que, dans l'assertion, il faut affirmer sur spy.get comme:
sinon.assert.calledOnce(spy.get);

Auparavant, il était affirmé uniquement sur l' espionnage et ne fonctionnait pas.

Cette page vous a été utile?
0 / 5 - 0 notes