Sinon: Dokumentation zum Spionieren und Stubben von Getter / Setter

Erstellt am 2. Nov. 2017  ·  10Kommentare  ·  Quelle: sinonjs/sinon

Hallo zusammen,

Gibt es derzeit irgendwo eine Dokumentation zur Verwendung der in # 1205 beschriebenen Spionagefunktionen für Getter und Setter? Wenn nicht, könnte ich den Code und die Tests durchlesen und bei Bedarf hinzufügen. Ich suchte ziemlich intensiv und sah es nirgendwo, dachte ich, ich würde fragen. Vielen Dank.

Documentation Help wanted Property accessors pinned

Hilfreichster Kommentar

Es wurde implementiert und ich benutze es. Ich habe herausgefunden, wie es geht, indem ich die Tests in # 1205 durchgesehen habe. Ich habe die Tests hier gefunden .

Es wird so gemacht:

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

Sollte dies in den Dokumenten stehen? Oder ist diese Implementierung zu diesem Zeitpunkt noch nicht einmal bekannt?

Alle 10 Kommentare

Ist es das, wonach du gesucht hast?

Ich sehe das auch geschrieben, aber es scheint veraltet zu sein (früher war es wahr):

Wenn Sie Getter / Setter oder Nichtfunktionseigenschaften stubben müssen, sollten Sie sandbox.stub verwenden

Dafür können jetzt normale Stubs verwendet werden.

Für Stubs, die so aussehen. Ich weiß nicht, dass in den Spionagedokumenten etwas für sie enthalten ist.

Hmm ... Ich glaube nicht, dass Spionage für Getter / Setter implementiert wurde. Ich weiß auch nicht wirklich warum. Die Implementierung wäre im Grunde nur so:

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

Möchtest du es versuchen?

Es wurde implementiert und ich benutze es. Ich habe herausgefunden, wie es geht, indem ich die Tests in # 1205 durchgesehen habe. Ich habe die Tests hier gefunden .

Es wird so gemacht:

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

Sollte dies in den Dokumenten stehen? Oder ist diese Implementierung zu diesem Zeitpunkt noch nicht einmal bekannt?

Es wäre toll, wenn es dokumentiert würde, danke!

Auf jeden Fall werde ich es ausschalten.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivitäten gab. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

Gibt es eine Möglichkeit, es ohne Klasse auszuspionieren (direkt nach Objekt)?
Ich habe dort nur ein Objekt in der Spezifikation und konnte die Klasse des Getter-Setzers nicht benötigen. Gibt es auch einen anderen Weg?

@ mouse9 Es ist unklar, was Sie fragen und wie sich das auf das Stubben / Ausspionieren von Gettern bezieht. Ich verstehe auch nicht, was du mit Unterricht meinst. Klassen haben in Javascript keine wirkliche Bedeutung und in den meisten Fällen sind das, was Sie als Klassen betrachten, nichts anderes als Objekte.

In jedem Fall versuchen wir, die Liste der GitHub-Probleme aufgeräumt zu halten und uns auf Fehler und Funktionsdiskussionen zu konzentrieren. Dieses Ticket sieht aus wie eine Nutzungsfrage. Bitte poste es in sinon , damit die größere Community deine Fragen beantworten kann.

Wenn Sie der Meinung sind, dass Ihr Thema ein Problem mit Sinon ist, öffnen Sie bitte ein neues Ticket und befolgen Sie die Richtlinien für die Meldung eines Problems .

Für den Code von @loganhuskins :
spy = sinon.spy(className, 'nameOfGetterFunction', ['get'])

Es wurde festgestellt , dass in der Behauptung auf muss :
sinon.assert.calledOnce(spy.get);

Zuvor wurde nur auf Spion behauptet, und funktionierte nicht.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen