Модульное тестирование зависимостей node.js
У меня есть вопрос по использованию Proxyquire (или любые другие предложения о том, как проверить следующий код)
Если у меня есть следующий файл для проверки:
var path = require('path');
module.exports = function (conf) {
var exported = {};
exported.getIssue = function (issueId, done) {
...
...
};
return exported;
};
Как передать переменную 'conf' при использовании proxyquire для макета пути? вар?
Есть ли другой способ сделать это, если вы не используете proxyquire?
1 ответ
Вы просто должны пройти conf
переменная для модуля / функции, требуемая через прокси-сервер. Proxyquire имеет смысл делать то же, что и CommonJs, но с возможностью насмешки и заглушки некоторых модулей. Так что вы должны действовать так же.
var pathMock = {
someMethod = function() {}
};
var confMock = {
someMethod = function() {}
};
spyOn(pathMock, 'someMethod').and.callThrough();
spyOn(confMock, 'someMethod').and.callThrough();
module = proxyquire('../path/to/module', {
path: pathMock
});
it('do some test', function(done) {
module(conf).getIssue();
expect(pathMock.someMethod).toHaveBeenCalled;
expect(confMock.someMethod).toHaveBeenCalled;
});