2013-10-17 3 views
1

내 백본 마리오 네트 모듈을 테스트하고 있습니다. 각 테스트를하기 전에 응용 프로그램에서 모듈을 설정하고 티어 프로세스에서 완전히 제거하려고합니다.Backbone Marionette 모듈을 제거하는 방법?

모듈을 멈추는 방법을 찾았지만 충분하지는 않습니다. 이벤트 리스너, 응용 프로그램에서 모듈 객체를 제거하지 않습니다. 그리고 더 많은 테스트 케이스가 존재하면 모듈 정의를 다시 호출하는 대신 새 모듈을 만듭니다 , 그냥 기존에 적용됩니다.

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) 
}); 

답변

0

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(); 
}); 
+1

그는 단지 모듈을 중지하기를 원하지만 완전히 제거하지 않습니다. –

+0

이 방법은 모든 이벤트 처리기가 제거되지 않으면 테스트가 서로 다를 수 있습니다 – Blacksonic

+0

테스트는 서로에 의존해서는 안됩니다 .i 모듈 정리 이벤트에 코드를 추가하여 정리를 수행해야한다고 생각하면 모듈을 시작할 수 있어야합니다. 멈췄다. –

1
// assume you know the name of the module 
delete application['MyModule']; 

// otherwise 
var module = application.module('awesomeModule', function(){}); 
delete application[module.moduleName]; 
+0

및 이벤트 리스너에서도 제거 할 수 있습니까? 삭제하기 전에 객체 – Blacksonic

+0

만 호출하여 module.stop()을 호출합니다. https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.application.module.md#module-finalizers –

관련 문제