У меня есть js файл время выполнения. js:
define([], function() {
return {
get executionContext() { return "UNSUPPORTED_CONTEXT" },
isFeatureInEffect: function(arg) {
return true;
}
};
});
В основном время выполнения. js используется как модуль в других файлах js, импортировать его с помощью define. Он возвращает объект с свойством executeContext и метод isFeatureInEffect .
Теперь я хочу смоделировать свойство executeContext в моих тестах. Чтобы сделать это, я попытался:
//in spec file
spyOnProperty(runtime, 'executionContext', 'get').and.callFake(function(){ return "USERINTERFACE"});
console.log(runtime.executionContext); // prints "USERINTERFACE" i.e. mocking is successful
При входе в тот же файл _spe c, в котором он подсматривается, runtime.executionContext имеет значение "USERINTERFACE" (кажется, что насмешка работает)
Но когда то же самое время выполнения. js импортируется как модуль в другом js файле, который тестируется скажем, третьим. js, при регистрации значения runtime.executionContext оно оказывается таким же, как определено во время выполнения. js и не возвращает смоделированное значение.
Выше было для насмешки над свойством. Однако при моделировании метода : при использовании spyOn (runtime, "isFeatureInEffect") для метода isFeatureInEffect, mocking работает нормально, а rutime.isFeatureInEffect () возвращает смоделированное значение даже в третьем. js
Что я должен сделать, чтобы получить смоделированное значение свойства runtime.executionContext в третьем. js также?
Заранее спасибо !!