Это интересный вопрос.
Декораторы предназначены для непосредственного использования, поэтому не могут быть осмеяны обычными средствами.Это может быть законным случаем использования jest
обходного макета.
Однако, IMO, цель вашего теста неуместна.Вы не должны проверять тот факт, что он был вызван с помощью { opt1: true }
, вы должны проверить поведение использования такого декоратора, если это возможно.
Проверка того, что он был вызван с помощью { opt1: true }
то же самое, что вы хотите проверить findLCD(a: number, b: number)
, чтобы убедиться, что он вызвал Math.abs(a)
.
. Вы должны сосредоточиться на поведении (которое findLCD(a, b)
даст вам правильный результат), а не на том, каккод делает это.
Средство, если ваш декоратор @foo
делает что-то измеримое, вместо этого проверьте.
Например, если @foo
напишите какую-нибудь запись в журнале, найдитеспособ проверки записи журнала написан, вместо @foo
был вызван определенным образом.