Жасмин: тестирование статической функции в другом классе
Предполагая, что у меня есть статический класс и нормальный класс, как показано ниже.
class StaticClass {
static staticFunction() {
console.log('Static function called.');
}
}
class NormalClass {
normalFunction() {
StaticCLass.staticFunction();
}
}
Как проверить, что статическая функция вызывается, когда normalFunction()
называется?
1 ответ
Вы можете настроить простого шпиона (как вы уже догадались по тегу из вашего вопроса) следующим образом:
it('should test if the static function is being called ', () => {
// Set up the spy on the static function in the StaticClass
let spy = spyOn(StaticClass, 'staticFunction').and.callThrough();
expect(spy).not.toHaveBeenCalled();
// Trigger your function call
component.normalFunction();
// Verify the staticFunction has been called
expect(spy).toHaveBeenCalled();
expect(spy).toHaveBeenCalledTimes(1);
});
Вот стек-блиц, в котором реализован и успешно пройден вышеуказанный тест.