2016-06-09 12 views
1

Ich habe eine Methode, wo ich eine Methode mit Destrukturierung importieren. Ich versuche, diese Methode auszuspionieren, aber laufe immer wieder in Fehler.Spion auf destrukturierten erfordern Methode

const { addition } = require('./my-math-lib'); 

const additionSpy = sinon.spy(addition); 

testMethod.doMath(); 

expect(additionSpy.calledOnce).to.be.equal(true); 

Leider funktioniert dieser Komponententest nicht. Whey Ich schaue auf das additionSpy-Objekt, ich sehe das nichtCalled ist wahr.

Wenn ich den Code ändern, um -

const mathStuff = require('./my-math-lib'); 

const additionSpy = sinon.spy(mathStuff, 'addition'); 

testMethod.doMath(); 

expect(additionSpy.calledOnce).to.be.equal(true); 

Diese Einheit Test wird vorübergehen.

Antwort

2

Sinons Spionage-Methode kann Funktionen nicht ändern. Funktionen sind in Javascript nicht veränderbar. Sinons Spionage-Methode kann eine neue Funktion erstellen (additionSpy in Ihrem ersten Beispiel), oder sie kann ein Objekt ändern und eine Methode ersetzen (Ihr zweites Beispiel). Ihr zweites Beispiel sieht korrekt aus, was Sie tun möchten.

+0

Danke und das zweite Beispiel funktioniert. Ich wollte gerade die Destrukturierung in meinen Require Calls verwenden. – VtoCorleone