Ich verwende GeoFire in einem Cloud-Funktionen für Firebase-Projekt Ich möchte Unit-Test. .Wie kann ich einen Konstruktor in node.js mit sinon in einem Cloud Functions for Firebase-Projekt stubben?
GeoFire = request('geofire');
...
var catGeoFire = new GeoFire(catGeofireRef);
return catGeoFire.set(storeId, [lat, lon]).then(() => {
console.log("Added store " + storeId + " to GeoFire");
return Promise.resolve();
});
ich sowohl den Anruf an den GeoFire Konstruktor und der GeoFire (es)() -Methode Stummel müssen:
In meinem ursprünglichen Code GeoFire wird wie folgt verwendet.
Ich habe versucht:
const geofireStub = sinon.stub(GeoFire, 'set').resolves();
Aber ich erhielt den Fehler:
TypeError: Cannot stub non-existent own property set
ich auch versucht:
const setStub = sinon.stub().resolves();
const geofireStub = sinon.stub(GeoFire).returns({set: setStub});
Und ich erhalte den Fehler:
TypeError: Cannot stub non-existent own property set
Beide Fehler treten in der geofireStub-Leitung auf.
Lesen der Sinon-Dokumentation Ich verstand, dass ich die Methoden eines Objekts stub. In diesem Fall ist GeoFire jedoch kein Objekt. es ist eine Konstruktorfunktion. Ich weiß also nicht wirklich, wie ich es stubben kann, ohne ein zugehöriges Objekt zu haben.
Danke!
Thank you! Ich probierte das und empfange immer noch den selben "Fehler nicht vorhandenen eigenen Eigenschaftssatz" Fehler. Außerdem muss ich den Konstruktor Anruf selbst stub ... –