Sinon: Globale Stub-Variablen

Erstellt am 7. Jan. 2019  ·  3Kommentare  ·  Quelle: sinonjs/sinon

Die Module, die ich testen und/oder simulieren möchte, verwenden einige globale Variablen.

Beispielsweise verweist der Quellcode des Moduls auf eine Variable session , die nirgendwo definiert ist, aber zur Laufzeit verfügbar ist.

Betrachten Sie das Modul globals.js :

let globals = {
    contextName: "DATA_PIPELINE",
    reportContext: "report",
    session: session
};

module.exports = globals;

session ist in dieser Datei nicht definiert, aber zur Laufzeit verfügbar. Es ist eine globale Variable der Umgebung (nicht unter meiner Kontrolle).

Mir ist aufgefallen, dass Sie es mit gefälschten Timern geschafft haben, die Implementierung globaler Funktionen wie setTimeout zu ersetzen. Wie könnten wir dies auf eine globale Funktion/ein beliebiges globales Objekt anwenden?

Alle 3 Kommentare

Vielleicht ist sinon.replace(object, prop, replacement) das, wonach Sie suchen?
https://sinonjs.org/releases/v7.2.4/sandbox/#sandboxreplaceobject -property-replacement

Wir versuchen, die GitHub-Issues-Liste sauber zu halten und uns auf Bugs und Feature-Diskussionen zu konzentrieren. Dieses Ticket sieht aus wie eine Nutzungsfrage; Bitte posten Sie es auf StackOverflow und taggen Sie es mit sinon , damit die größere Community Ihre Fragen beantworten kann.

In Node.js können Sie Folgendes tun:

global.session = sinon.stub();
// Proceed to import the modules that use the session global and run the tests
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen