Javascript 如何卸下主干木偶模块?
我正在测试我的主干木偶模块。在每次测试之前,我想在应用程序上设置一个模块,并在拆卸过程中完全删除它 我只发现了如何停止一个模块,但这还不够,它不会删除事件侦听器、应用程序上的模块对象等。除了在存在更多测试用例时再次调用模块定义外,它不会创建新模块,只会将其应用于现有模块Javascript 如何卸下主干木偶模块?,javascript,backbone.js,tdd,marionette,Javascript,Backbone.js,Tdd,Marionette,我正在测试我的主干木偶模块。在每次测试之前,我想在应用程序上设置一个模块,并在拆卸过程中完全删除它 我只发现了如何停止一个模块,但这还不够,它不会删除事件侦听器、应用程序上的模块对象等。除了在存在更多测试用例时再次调用模块定义外,它不会创建新模块,只会将其应用于现有模块 var application = new Backbone.Marionette.Application(); beforeEach(function() { application.module('MyModule
var application = new Backbone.Marionette.Application();
beforeEach(function() {
application.module('MyModule', function() {
// module definition goes here
})
});
afterEach(function() {
// i want something like this
application.remove(MyModule)
});
MyModuleYou可以在每个方法之前和之后定义它,并在启用时启动和停止
var application = new Backbone.Marionette.Application();
application.module('MyModule', function() {
// module definition goes here
})
beforeEach(function() {
application .module('MyModule').start();
});
afterEach(function() {
application .module('MyModule').stop();
});
他不想只停止一个模块,而是完全删除它。这样,如果不是所有事件处理程序都被删除,测试可能会相互依赖。测试不应该相互依赖。我认为您应该向finalize模块事件添加代码以进行清理,您的模块应该能够启动和停止。但问题是,访问应用程序并将其从Itan和事件侦听器中删除?在删除之前,它只删除objectcall模块.stop()。
// assume you know the name of the module
delete application['MyModule'];
// otherwise
var module = application.module('awesomeModule', function(){});
delete application[module.moduleName];