Sinon: Documentação para espionagem e stubbing de getter / setter

Criado em 2 nov. 2017  ·  10Comentários  ·  Fonte: sinonjs/sinon

Olá a todos,

Existe atualmente documentação em algum lugar sobre como usar os recursos de espionagem getter e setter descritos em # 1205? Do contrário, eu poderia ler o código e os testes e adicioná-los, se necessário. Eu procurei bastante e não vi em lugar nenhum, pensei em perguntar. Obrigado.

Documentation Help wanted Property accessors pinned

Comentários muito úteis

Foi implementado e estou usando. Eu descobri como olhando através dos testes em # 1205. Encontrei os testes aqui .

É feito assim:

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

Isso deveria estar nos documentos? Ou essa implementação nem mesmo é conhecida neste momento?

Todos 10 comentários

É isso que você estava procurando?

Também vejo isso escrito, mas parece desatualizado (costumava ser verdade):

Se você precisar criar stub getters / setters ou propriedades não funcionais, deverá usar sandbox.stub

Stubs normais podem ser usados ​​para isso agora.

Para esboços semelhantes. Não sei se há algo nos documentos de espionagem para eles.

Hmm ... Na verdade, não acho que a espionagem foi implementada para getters / setters. Também não sei por quê. A implementação seria basicamente algo assim:

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

Importa-se de tentar?

Foi implementado e estou usando. Eu descobri como olhando através dos testes em # 1205. Encontrei os testes aqui .

É feito assim:

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

Isso deveria estar nos documentos? Ou essa implementação nem mesmo é conhecida neste momento?

Seria ótimo ter isso documentado, obrigado!

Com certeza, vou acabar com isso.

Este problema foi marcado automaticamente como obsoleto porque não teve atividades recentes. Ele será fechado se nenhuma outra atividade ocorrer. Obrigado por suas contribuições.

Existe alguma maneira de espioná-lo sem classe (diretamente por objeto)?
Eu tenho apenas o objeto lá na especificação e não poderia exigir a classe do setter getter. Há alguma outra maneira também?

@ mouse9 Não está claro o que você está perguntando e como isso se relaciona com stub / espionagem em getters. Eu também não entendo o que você quer dizer com classes. Classes não têm nenhum significado real em javascript e, na maioria dos aspectos, o que você pensa como classes nada mais são do que objetos.

Em qualquer caso, estamos tentando manter a lista de problemas do GitHub organizada e focada em bugs e discussões de recursos. Este tíquete parece uma questão de uso; poste-o no StackOverflow e sinon , para que a comunidade maior possa ajudar a responder às suas perguntas.

Se você acha que seu tópico é um problema com a Sinon, abra um novo tíquete e siga as orientações para relatar um problema .

Para o código de @loganhuskins :
spy = sinon.spy(className, 'nameOfGetterFunction', ['get'])

Descobriu que, na afirmação, é necessário afirmar sobre spy.get como:
sinon.assert.calledOnce(spy.get);

Anteriormente, foi declarado apenas na espionagem e não funcionou.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

OscarF picture OscarF  ·  4Comentários

brettz9 picture brettz9  ·  3Comentários

sudhirbits picture sudhirbits  ·  4Comentários

optimatex picture optimatex  ·  4Comentários

stevenmusumeche picture stevenmusumeche  ·  3Comentários