0

我有一个非常简单的问题。如何在与我的根规范文件夹不同的目录位置对 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);

我什至不明白这些点代表什么?我怎样才能使这项工作?有人吗?请帮忙。

4

1 回答 1

2

你的路径很可能是错误的。点表示相对于当前路径的路径,每个 ../ 在文件夹结构中占据一层。

假设您的 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)

希望这可以解决问题,并且我正确理解了您的问题;)

于 2014-08-29T03:49:51.863 回答