Как смоделировать объект оконного навигатора при модульном тестировании углового кода - PullRequest
0 голосов
/ 06 февраля 2019

Я использую жасмин, чтобы написать модульный тест в угловых.Метод использует свойство window.navigator.Свойство определено вне метода, как показано нижепокрывается автоматически при запуске модульного теста.Я хочу охватить все ветви этого кода, т. Е. Я хочу охватить все условия ИЛИ во время тестирования.Как издеваться над навигатором в юнит-тесте?

1 Ответ

0 голосов
/ 21 августа 2019

Я создал метод для возврата навигатора вместо непосредственного обращения к нему, а затем издевался над тем же методом в файле спецификации.

В файле component.ts-

// method that returns navigator object
public getNavigatorReference(): any {
    return navigator;
}

// method that uses the above method
private methodThatUsesNavigator(): void {
   let navigatorReference = this.getNavigatorReference();
   let locale = navigatorReference.language || navigatorReference.userLanguage || 
   navigatorReference.browserLanguage;
...
}

Inфайл спецификации -

Object.defineProperty(navigator, 'userLanguage', {
      get: function () { return 'en'; }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...