Я (очень) новичок в написании модульных тестов, и мне интересно, как мне подойти к тестированию статического метода, который создает наши конечные точки 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}`);
});