2017-03-11 4 views
0
PlayOscillator(hz: number = 400, durationInSeconds: number = 1){ 
    this._Oscillators[0].frequency.value = hz; 
    this._Oscillators[0].connect(this._MainGainNode); 
    this._activeOscillatorIndex = 0; 

setTimeout(() => { 
    console.info("time out called"); 
    this._Oscillators[this._activeOscillatorIndex].disconnect(this._MainGainNode); 
this._Oscillators[this._activeOscillatorIndex] = undefined; 
}, durationInSeconds * 1000); 
} 

Ich möchte typeofthis._Oscillators[0] testen, nachdem setTimeout ausgeführt wurde, aber ich bin nicht in der Lage, es zu tun. Alle Lösungen, die ich gefunden habe, hier empfehlen Funktionen, die nicht verfügbar sind, in Jasmin 2.5Wie testet man eine Funktion, die einen setTimeout in Jasmine 2.5 auslöst?

Ich habe bisher

 it('Should switch from one oscillator to another',()=>{ 
       let wap = webAudioApiProvider; 
      expect(wap._Oscillators[0]).toBeUndefined(); 
      expect(()=>{wap.PlayOscillator(freq,duration)}).not.toThrow(); 
      expect(wap._Oscillators[0]).toBeUndefined(); 

     }); 
+0

Wo ist Ihr Testcode, den Sie bisher haben? – JLRishe

+0

Ah Entschuldigung, ich dachte, ich hätte es eingefügt. Ich werde meine Frage in 10 Minuten bearbeiten, wenn ich vom Lebensmittelgeschäft zurückkehre. Es ist nur ein Drei-Zeilen-Code mit dem es erwarten, nicht werfen. Und toBe – distante

+0

@JLRishe aktualisiert! – distante

Antwort

0

Sie sollten in der Lage sein, einen done Parameter zu verwenden, die seit Jasmin unterstützt 2.0:

it('Should switch from one oscillator to another', done => { 
    let wap = webAudioApiProvider; 
    expect(wap._Oscillators[0]).toBeUndefined(); 
    expect(()=>{wap.PlayOscillator(freq,duration)}).not.toThrow(); 

    setTimeout(() => { 
     expect(wap._Oscillators[0]).toBeUndefined(); 
     done(); 
    }, duration * 1000 + 100); // add 100 to ensure this fires after the wap's timeout 
}); 
+0

Danke, es hat funktioniert, aber ich musste einen Fehler von tslint ignorieren, der sagt: "Kann den Namen nicht finden". Vielleicht sind die Typisierungen für Jasmin nicht auf dem neuesten Stand. – distante

Verwandte Themen