Если функция, которую я хочу проверить, использует константы, следует ли мне использовать эти константы при ее тестировании?
Например, если это функция:
export const SERVER_FILTERS = {
URL: 'pageURL',
PLATFORM: 'platform',
TRAFFIC_SOURCE: 'trafficSource',
COUNTRY: 'country',
OPERATING_SYSTEM: 'operatingSystem',
STATE: 'state',
};
export const formatUrlFilterForServer = filter => {
return filter.conditions.map(({ value }) => {
return {
variable: SERVER_FILTERS.URL,
value,
};
});
};
Следует ли мне использовать SERVER_FILTERS
в моем тесте? или лучше написать явно строку, которую я хочу видеть в ожидаемом результате?
Например:
describe('formatUrlFilterForServer', () => {
it('should format the URL filter correctly', () => {
const value = 'blah.com';
const filter = {
conditions: [
{ value },
],
};
const expectedResult = [
{
variable: SERVER_FILTERS.URL,
value,
},
];
expect(formatUrlFilterForServer(filter)).toEqual(expectedResult)
})
});
С одной стороны, если я изменю эту константу, я не хочу go закончить все мои тесты и исправить их. С другой стороны, я думаю, что мой тест должен найти все проблемы, с которыми может столкнуться мой код, даже опечатки в его константах.
Есть ли здесь лучшая практика? спасибо всем.