FireFoxのクラウドファンクションプロジェクトでGeoFireを使用しています。ユニットテストをしたいです。私の元のコードGeoFireでfirefoxプロジェクトのCloud Functionsでsinonを使用してnode.jsにコンストラクタをスタブするにはどうすればよいですか?
は次のように使用されます。
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();
});
私はGeoFireコンストラクタとGeoFire()への呼び出しの両方をスタブする必要がありますセット()メソッド。
私が試した:
const geofireStub = sinon.stub(GeoFire, 'set').resolves();
をしかし、私はエラーを受け取りました:
TypeError: Cannot stub non-existent own property set
私も試してみました:
const setStub = sinon.stub().resolves();
const geofireStub = sinon.stub(GeoFire).returns({set: setStub});
そして、私はエラーが表示されます。
TypeError: Cannot stub non-existent own property set
両方のエラーはgeofireStub行で発生します。
私はオブジェクトのメソッドをスタブすることができることを理解しました。しかしこの場合、GeoFireはオブジェクトではありません。それはコンストラクタ関数です。だから私は実際にどのように関連オブジェクトを持たずにそれをスタブすることができないのか分かりません。
ありがとうございます!
ようなものが必要!私はこれを試して、同じ "まだ存在しないプロパティセットをスタブすることはできません"エラーを受け取ります。また、コンストラクタ呼び出し自体をスタブする必要があります... –