2017-02-08 6 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. Как я могу это сделать с помощью шпионов Jasmine?

ответ

0

После создания экземпляра вашего класса безопасности вы можете назначить свой объект-макет Auth0Lock экземпляру lock. Что-то вроде этого:

let securityObject = new SecurityClass(); 
let mockedAuth0Lock = { 
    clientId1: 22, 
    someMethod: jasmine.createSpy('Auth0LockMethod') 
}; 
securityObject.lock = mockedAuth0Lock; 
Смежные вопросы