Метод модульного тестирования со ссылкой на environment.ts с использованием Jasmine - PullRequest
0 голосов
/ 24 января 2019

Я (очень) новичок в написании модульных тестов, и мне интересно, как мне подойти к тестированию статического метода, который создает наши конечные точки API на основе того, какие свойства установлены в нашем файле environment.ts.

Файл environment.ts изменяется в зависимости от среды, поэтому мне любопытно, как бы я учел это в моем тесте.

Нужно ли реорганизовать мой метод, чтобы облегчить его тестирование? Например, вместо неявной ссылки на environment.endpoint, вместо передачи среды в качестве аргумента? Буду ли я издеваться над файлом environment.ts?

Любые предложения будут полезны.

import {environment} from '../../environments/environment';

export class Utilities {

  public static constructAPIEndpoint(): string {
    const hostname: string = environment.endpoint;
    const protocol: string = environment.local ? 'http:' : 'https:';

    return `${protocol}//${hostname}/`;
  }
}

environments.ts

export const environment = {
  production: false,
  local: false,
  hostname: 'localhost',
  showLogs: true,
  endpoint: 'foo-dev-graphapp.com',
  appInsights: {
    instrumentationKey: '123'
  }
};

Жасминовая проба:

  import {environment} from '../../environments/environment';

  it('constructAPIEndpoint() it should construct an endpoint based on environment.ts', () => {
    const endpoint: string = Utilities.constructAPIEndpoint();

    /// THIS DOESN'T SEEM - having to recreate logic inside constructAPIEndpoint()
    const protocol: string = environment.local ? 'http:' : 'https';



    expect(endpoint).toEqual(`${protocol}//${environment.endpoint}`);


  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...