2017-02-08 7 views
0

Ich habe folgenden Typoskript Konstruktor in einer Klasse Security.tsJasmin Spion Objekt abhängig von einem anderen Objekt, injiziert Mock

constructor(readonly idOptions: IdentityOptions) { 
    console.log('constructor called'); 
    this.lock = new Auth0Lock(idOptions.clientId, idOptions.domain, { 
     auth: { 
      redirectUrl: idOptions.redirectUrl, 
      responseType: 'code', 
      params: { 
       scope: 'openid' 
      } 
     }, 
     initialScreen: idOptions.initialScreen, 
     allowedConnections: ['Username-Password-Authentication'] 
    }); 
} 

Jetzt in den Unit-Tests für Security.ts (mit Jasmin) ich verspotten will, dass die Auth0Schließen Sie das Objekt vollständig, anstatt das echte Auth0Lock-Objekt aufzurufen. Wie kann ich dies mit Jasmine Spies tun?

Antwort

0

Nach dem Erstellen der Instanz Ihrer Sicherheitsklasse können Sie Ihr Auth0Lock-Mock-Objekt der Instanz lock-Eigenschaft zuweisen. Etwas wie dieses:

let securityObject = new SecurityClass(); 
let mockedAuth0Lock = { 
    clientId1: 22, 
    someMethod: jasmine.createSpy('Auth0LockMethod') 
}; 
securityObject.lock = mockedAuth0Lock; 
Verwandte Themen