Это может быть очень глупый вопрос, но есть ли причина, почему url.parse
вернет undefined
в этом случае, если бы я просто передал строку URL-адреса, например proto.getProtocol("http://www.some.com/test")
?nodejs url.parse test возвращает undefined
Пожалуйста, обратите внимание, что я новичок с nodejs
.
'use strict';
var url = require("url");
var proto = {};
proto.getProtocol = function (path) {
console.log(path);
var parts = url.parse(path, true);
console.log(parts);
return parts;
};
module.exports = proto;
console.log(parts);
возвращает неопределенное значение, как это, когда я запускаю тесты.
Тест:
var chai = require('chai');
var sinonChai = require("sinon-chai");
var expect = chai.expect;
var extend = require('lodash').extend;
var sinon = require('sinon');
chai.use(sinonChai);
var proxyquire = require('proxyquire');
describe("getProtocol", function() {
var testedModule, parseSpy, path;
before(function() {
path = "http://www.some.com/test";
parseSpy = sinon.spy();
testedModule = proxyquire('../getProtocol.js', {
'url': {
'parse': parseSpy
}
});
testedModule.getProtocol(path);
});
it("calls url.parse", function() {
expect(parseSpy).has.been.calledOnce.and.calledWithExactly(path, true);
});
});
Вот и все. благодаря – hyprstack