如何使用jasmine框架对特定文件node.js进行单元测试

时间:2014-08-29 03:25:48

标签: javascript node.js unit-testing jasmine-node

我有一个非常简单的问题。如何在与根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);

我甚至不明白这些点代表什么?我怎样才能做到这一点?任何人?请帮忙。

1 个答案:

答案 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)

希望这清除它并且我理解你的问题;)