2016-05-17 33 views
0

Hallo Ich möchte die Funktion wie unten zu sehen, und weil die Funktion ein Versprechen zurückgibt, so muss ich das Versprechen zurück, lassen Sie anderen Code weiter ausgeführt.Wie Spion innerhalb Stub kehrt mit Sinon

Aber es besteht nie den Test, mache ich es falsch? Wie kann ich das richtig machen? Vielen Dank im Voraus.

Tut mir leid, ich kann das Problem nicht eindeutig beschreiben, another_fn wird aufrufen, und die orgin_fn gibt ein Versprechen zurück; Ich möchte die ausspionieren wird aufgerufen. Wie kann ich das machen?

let spy_fn = sinon.spy(); 
sinon.stub(object, 'method').returns({    
    origin_fn(args) { 
     spy_fn(args); 
     return Promise.resolve(); 
    } 
}); 

another_fn('test_args'); 
spy_fn.should.have.been.calledWith('test_args'); 

Antwort

0

Wenn Sie nur sicherstellen möchten, dass origin_fn mit dem richtigen Argument aufgerufen wird, können Sie so etwas wie dieses verwenden können:

let spy = sinon.stub(object, 'method').returns({ 
    origin_fn(arg) { 
    arg.should.equal('test_args'); 
    } 
}) 

let fn = function() { another_fn('test_args'); }; 
fn.should.not.throw(); 
+0

Hallo, ich könnte meine Frage nicht beschreiben sehr deutlich, ich habe aktualisiert die Beschreibung, kannst du es dir anschauen? Danke. :) – Sabrina

+0

Danke, es funktioniert – Sabrina