Javascript 影响Meteor中Jasmine测试的重复函数名

Javascript 影响Meteor中Jasmine测试的重复函数名,javascript,unit-testing,meteor,jasmine,meteor-velocity,Javascript,Unit Testing,Meteor,Jasmine,Meteor Velocity,我最近已经开始工作,并试图开始,因为我的意思是继续测试良好。为此,我正在使用测试运行程序,并将其用于实际测试 举一个非常简单的例子,我在服务器目录中有一个名为hello.js的文件,其中包含我们以前最喜欢的文件 var helloWorld = function () { return "Hello World"; }; 然后在我的测试目录“tests/jasmine/server/unit”中,我有一个包含基本测试套件的测试文件sampleTest.js describe("Hell

我最近已经开始工作,并试图开始,因为我的意思是继续测试良好。为此,我正在使用测试运行程序,并将其用于实际测试

举一个非常简单的例子,我在服务器目录中有一个名为
hello.js
的文件,其中包含我们以前最喜欢的文件

var helloWorld = function () {
    return "Hello World";
};
然后在我的测试目录“tests/jasmine/server/unit”中,我有一个包含基本测试套件的测试文件
sampleTest.js

describe("Hello World", function() {
    it("should return hello world", function() {
        expect(helloWorld()).toBe("Hello World");
    });
});
Velocity报告所有测试都通过了,每个人都很高兴。如果我更改原始的
helloWorld
函数以返回不同的内容,测试将按预期失败

但是,如果项目中某处存在同名的第二个函数,但输出不同,例如

var helloWorld = function () {
    return "Goodbye World";
};
那么这将破坏测试,但它的另一个版本通过了测试

从这个简化的示例推断,如何确保每个函数都具有唯一的名称以避免此问题


我的问题更多的是因为我对Meteor基础知识(或JS/测试基础知识)的理解不够全面吗

如果两个函数在同一个作用域中具有相同的名称,它们不会保持这种状态很长时间。流星会找到它们,发出错误信号,说出它在哪里,甚至不会启动。因为Meteor运行JSLint检查来捕捉这种东西。我认为你的问题是关于一些非常理论化的事情,不太可能发生。你对测试的掌握很好。我希望我能比实际更早开始测试。这就是我希望/假设会发生的,但Meteor没有抛出任何错误。你是对的,我错了。我刚刚测试过。让我们撇开这个事实不谈,你可能永远不会犯这个错误——我想我从来没有犯过——事实是Javascript对某些事情非常宽容,所以在这种情况下,我猜函数的第二个版本只是简单地覆盖了第一个版本。我将对此进行测试。是的,最后一个函数将始终覆盖第一个函数。流星助手也是如此。但就我个人而言,我不会花时间担心这种情况的发生。