В моем проекте много служебных функций, которые выполняют некоторые преобразования данных и т. д. Эти функции не относятся к классу и повторно используются во многих служебных файлах.
Я очень новичок в угловом тестировании. Искал довольно долго, и я не мог найти способ заглушить импорт проверенного файла. Вот пример:
/utils/helpers.ts
export const sumNumber = (a: number, b: number): number => {
return a + b;
}
/utils/file-i-want-to-test.ts
import { sumNumber } from "./helpers";
export const sumArrays = (arr1: number[], arr2: number[]): number[] => {
const len = arr1.length > arr2.length ? arr1.length : arr2.length;
const result = new Array(len).fill(0);
return result.map((_, index) => sumNumber(arr1[index] || 0, arr2[index] || 0));
}
/utils/file-i-want-to-test.spec.ts
import { sumArrays } from './file-i-want-to-test';
describe('Utilities', () => {
describe('Function - sumArrays', () => {
it('should return empty array', () => {
const actual = sumArrays([], []);
expect(actual).toEqual([]);
});
it('should call sumValue 2 times', () => {
const actual = sumArrays([1, 2], [3, 4]);
// How to test that sumArray is actually calling his dependency sumNumber?
});
});
});
Проблема
Чтобы правильно выполнить модульное тестирование функции sumArrays, мне нужно заглушить ее зависимость sumNumber. Как это можно сделать?