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对某些事情非常宽容,所以在这种情况下,我猜函数的第二个版本只是简单地覆盖了第一个版本。我将对此进行测试。是的,最后一个函数将始终覆盖第一个函数。流星助手也是如此。但就我个人而言,我不会花时间担心这种情况的发生。