我有一个非常简单的问题。如何在与根specs文件夹不同的目录位置对node.js类/函数进行单元测试?
我的意思是,我的项目根目录中有一个specs文件夹
/specs/test-spec.js
这里我有一个用jasmine编写的单元测试到位于
的helloWorld.js类/service/benefits/programs/california/helloWorld.js
helloWorld.js
的内容var helloWorld = function(){
return 'hello world';
};
这是我的节点 - 茉莉花单元测试
helloWorld-spec.js :
describe("Hello World", function() {
it("should return string hello world", function() {
expect(helloWorld()).toEqual('hello world');
});
});
单元测试不会通过,因为它看不到helloWorld.js,怎样才能看到helloWorld.js
我应该像这样添加:
var helloWorld = require(../../../../helloWorld.js);
我甚至不明白这些点代表什么?我怎样才能做到这一点?任何人?请帮忙。
答案 0 :(得分:1)
你的道路很可能是错的。圆点表示相对于当前路径的路径,每个../在文件夹结构中将其提升一级。
假设你的2个文件夹结构是这样的:
/root/specs/test-spec.js
/root/service/benefits/programs/california/helloWorld.js
如果你想访问test-spec.js中的helloWorld.js:
您首先使用../
的原因是上升一级,在这种情况下从specs
文件夹升级到root
文件夹
结果将是:var helloWorld = require(../service/benefits/programs/california/helloWorld.js);
但是如果你试图从helloWorld.js到test-spec.js,你需要遍历文件夹结构到根级别,这又是../
进来的地方,因为我们需要回到加州,计划,福利,服务到达根级别:
var helloWorld = require(../../../../specs/test-spec.js);
此方法称为相对路径,其中路径相对于您在文件夹结构中的位置。或者,如果您知道文件夹始终存在,则可以使用“/”字符表示您希望从根级别开始在根级别:
var helloWorld = require(/specs/test-spec.js)
希望这清除它并且我理解你的问题;)