Я пытаюсь протестировать библиотеку, которую я импортирую и использую: detectrtc, и я не могу вернуть фиктивный объект для шпионского жасмина.Каждая попытка шпионить и издеваться тянет через фактическую информацию, а не фальшивую информацию.
Первоначально я импортировал детектор, используя:
import * as DetectRTC from 'detectrtc';
Затем я использовал его внутри такой функции:
const os: string = DetectRTC.osName;
но так как это будет делать импорт при загрузке компонента, я решил, что всегда будет слишком поздно подсматривать за ним при тестировании функции, в которой он используется.
Поэтому я переключился на захват библиотеки внутри функции вИспользуйте вопрос require (), чтобы сделать тестирование более простым / возможным:
const detectRTC = require('detectrtc');
const os: string = detectRTC.osName;
Оба эти подхода работают в реальной программе, я должен добавить,Но как я могу spyOn и вернуть некоторые поддельные значения?
Я нашел это https://github.com/jasmine/jasmine/issues/1414, которое предполагает, что это может быть ошибка жасмина, но я не уверен, что я прав в этой оценке, поскольку это может быть другой случай.
Я думаю, что проблема сосредоточена на require()
, и тот факт, что он не соответствует синтаксису spyOn(object, 'function')
, но я не уверен.
Заранее спасибо за любую помощь.