簡體   English   中英

node.js 單元測試模擬依賴

[英]node.js unit testing mock dependency

我有一個關於使用 proxyquire 的問題(或關於如何測試以下代碼的任何其他建議)

如果我有以下文件要測試:

var path = require('path');

module.exports = function (conf) {
    var exported = {};

    exported.getIssue = function (issueId, done) {
        ...

        ...
    };

    return exported;
};

我如何在使用 proxyquire 模擬“路徑”時傳入“conf”變量; 變種?

如果不使用proxyquire,還有其他方法可以做到這一點嗎?

您只需將conf變量傳遞給通過 proxyquire 所需的模塊/函數。 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;        
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM