我希望对我的Meteor应用程序进行单元测试。我有几个客户端文件,其中包含处理某些逻辑的函数,并由我的事件处理程序调用。我的直觉是将这些函数提取到一个模块中,该模块可以被我的事件处理代码所需和调用,并且单独进行单元测试,但我不确定如何在Meteor中执行此操作。
将我的逻辑代码拉入单独的文件/模块后,我获得其他文件的唯一成功就是将模块公开为全局变量。这在Meteor documentation中描述为变量的包范围。
让这个工作需要我关闭'use strict'
,而且通常只是感觉不对 - 我不需要包中的所有内容来查看此文件,只需一个地方它已被使用,还有一个单元测试。
我知道包是一种封装代码的方式,但对于这个用例来说似乎过于夸张了。
我在Meteor中进行了一些寻找更细粒度的依赖关系管理的工作,并找到了this one,作者明确表示不再维护它。
在Meteor中封装代码以供使用和单元测试的正确方法是什么?
答案 0 :(得分:1)
如果你在流星文件中
MyModule = {}
function cantSeeMe() {
}
MyModule.doesStuff =function() {
}
在测试中你可以访问它(以及流星中的其他文件)
describe("Modules", function(){
it("should be exposed", function(){
chai.assert.equal(typeof MyModule.doesStuff, 'function');
});
it("should not be exposed", function(){
chai.assert.equal(typeof cantSeeMe, 'undefined');
});
});
这是使用mike:mocha