2016-09-13 3 views
2

У меня есть две функции в одном модуле:Как шпионить функции из другого модуля

export function foo() { 
    console.log('foo'); 
} 

export function bar() { 
    foo() 
} 

Теперь я хочу, чтобы проверить bar(), установить spy на foo() и утверждают, для того, чтобы назвать. Как это можно достичь?

+2

Просто идея ..... А как насчет использования аспектно-ориентированного программирования? – GibboK

+0

Как вы относитесь к «шпиону»? – Xotic750

+0

@ Xotic750 на самом деле, я имел в виду это http://sinonjs.org/docs/#sinonspy –

ответ

1

EDIT/update: Извините, был бар и foo назад. Способ структурирования модуля.

Когда код выполнен, ссылка на панель внутри функциональной панели разрешена против локальной реализации. Вы не можете изменить это, поскольку он находится вне кода модуля. Нет доступа к интервалам.

Вы пробовали использовать такой код для тестового файла?

let obj = {}; 
obj.bar = function() { 
this.foo(); 
} 

obj.foo = function() { 
... 
} 

export default obj; 
+0

Спасибо за ваш ответ, но проблема в том, что импортированная функция в моем тесте не вызвана в моем модуле. Это разные экземпляры, поэтому это не даст мне никакого результата. –

+0

Я знаю подход, который вы предложили в своем отредактированном ответе, я также знаю подход к проверке методов прототипов, но я блуждал, если есть способ сделать это только с помощью функций. –

Смежные вопросы