Модульное тестирование зависимостей 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;        
});
Другие вопросы по тегам