2017-02-08 66 views
0

我有以下的打字稿構造在Security.ts類茉莉花間諜對象依賴於另一個對象,注入模擬

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'] 
    }); 
} 

現在在單元測試Security.ts(使用茉莉花)我想嘲笑Auth0Lock對象,而不是調用真正的Auth0Lock對象。我如何使用茉莉花間諜來做到這一點?

回答

0

創建安全類的實例後,可以將Auth0Lock模擬對象分配給實例lock屬性。類似這樣的:

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