2013-12-16 61 views
0

我是使用requirejs和using the requirejs map configuration測試模塊的茉莉花單元,以提供嘲弄的依賴關係。然而,這隻在第一次測試運行時才起作用,之後模塊已經加載並且緩存版本被檢索到,所以額外的測試最終不加載它們的模擬,而是返回第一次測試的模擬。如何手動清除requirejs緩存

因此,假設我有這個

define 'directory', ['dataService'], (ds) -> 
    ds.doStuff() 

configureStub = (name, fn) -> 
    define name, fn 
    require.config 
    map: 
     directory: 
     dataService: name 

describe 'test fixture 1', -> 
    beforeEach -> 
    configureStub 'mockDataService1', -> doStuff: -> console.log "doing things" 
    it "uses the first mock service" -> ... 

describe 'test fixture 2', -> 
    beforeEach -> 
    configureStub 'mockDataService2', -> doStuff: -> console.log "doing other things" 
    it "uses the second mock service" -> ... 

因爲無論directorydataService緩存和頁面沒有測試之間刷新,mockDataService2永遠不會真正被加載,這將永遠是mockDataService1

有沒有辦法在我的測試設置中從requirejs的緩存中手動清除directorydataService

回答

0

我覺得這仍然是值得的答案,但人們在確切相同的情況下,我的管理符合squire.js和jasmine.ajax的組合來解決這個問題一個有效的問題。