2017-02-22 6 views
0

Ich habe den folgenden Code TyposkriptJasmin bespitzeln then-Anfrage Bibliothek

LoadClientConfigs(): Promise<ClientConfig> { 
    return new Promise((resolve, reject) => { 
     try { 
      request('GET', 'config/clients.json').done(function (res: any) { 

       if (res.statusCode >= 300) { 
        reject(res); 
       } 

       const clientConfigs: ClientConfig = JSON.parse(res.getBody()); 
       resolve(clientConfigs); 
      }); 
     } 
     catch (e) { 
      reject(e); 
     } 

    }); 
} 

Jetzt schreibe ich Jasmine Tests und ich brauche die Anfrage Methode zu verspotten. Antrag ist von der NPM-Paket dann-Anfrage und ich importieren es auf die folgende Weise

const request = require('then-request'); 

Wie verspotten ich die Anfrage Methode einen bestimmten Satz von Daten zurückzukehren, wenn sie aufgerufen. Bisher ist dies, was ich habe

beschreiben ('Client-Konfiguration'() => { es ('Sollte die korrekte Konfiguration für den angegebenen Client laden',() => {

 createSpy("request").and.callFake(() => { 
      console.log('requesting'); 
     }); 

     ConfigService.LoadClientConfigs(); 
    }) 
}) 

Doch die gefälschte Methode aufgerufen nicht.

Antwort

0

Wenn Sie

ändern
const request = require('then-request'); 

zu

var request = require('then-request'); 

dann können Sie die Anfrage Funktion wie dieses ich diese Antwort auf meinem Computer nicht ausgeführt

request = jasmine.createSpy().and.callFake(() => { 
      console.log('requesting'); 
      }); 

ConfigService.LoadClientConfigs(); 

verspotten haben, aber es sollte funktionieren.