Я хочу проверить свою функцию, которая проверяет, является ли моя переменная экземпляром типа, который я использую, и что-то делает.Я делаю проверку следующим образом, и она работает, как и ожидалось.
myCheckingFunction = () => {
if (target instanceof H.map.Marker) {
...
}
}
Но когда я хочу проверить этот код, вызвав функцию в моем тесте (я тестирую с помощью jest), то он выдает typeError.
Почему это происходит и как я могу передать это?
РЕДАКТИРОВАТЬ: После некоторого дальнейшего исследования я понял, что это не сработает, просто вызвав функцию впроверить и предположить, что все должно работать нормально.Это связано с типом, который я проверяю в instanceof 'H.map.Marker' в myCheckingFunction
.
Мой проект настройки на данный момент не самый лучший, но я должен с этим справиться.Вот что у меня есть:
class MockEventTarget {}
(global as any).H = {
map: {
Marker: MockEventTarget,
},
};
// this is how I call my test for myCheckingFunction
testMyCheckingFunction({target: new MockEventTarget()});
Из-за того, что я не могу просто импортировать H.map.Marker в моем тесте, я создаю фиктивный класс.Затем создаю глобальную переменную, в которой я говорю своей тестовой настройке, что предполагается, что H.map.Marker является классом.
При такой настройке я больше не получаю сообщение об ошибке сверху, потому что мой тест можетна самом деле вызовите фиктивный конструктор сейчас.