опыта написания тестов пара дней.
В сети пишут что в тестах не следует проверять изменения приватных свойств, но именно с такой необходимостью я столкнулся.
В приватном свойстве тестируемого класса находятся объекты-моки.
private Items = [item, item, ...];
Есть метод который я хочу протестировать. Например:
public initializeItem(id: number) {
const requiredItem = this.items.find((item) => {
item.getId() === id
});
requiredItem.initialize();
}
Я хочу проверить вызов дошел до мока item c запрошенным id, а значит требуется взять из приватного поля нужный мок и проверить что до него дошел вызов с нужными аргументами.
it('testName', () => {
...
testedObject.initializeItem('testId');
// тут берется значение приватного свойства
const initedItem = (testedObject as any).items.find((item) => {
item.getId() === id
});
expect(initedItem.initialize).toBeCalledTimes(1);
})
Такой тест требует проверки обращений к моку лежащему в приватном свойстве, это плохо? Если да, то как иначе?
Как туда объекты попадают?)
Обсуждают сегодня