2012-09-20 10 views
8

Ich habe gerade in meiner Unit-Test-Strategie mit RequireJS und Jasmine nach Abhängigkeitsinjektion gesucht. Ich mag die Idee hinter testr und ich habe versucht, testr nach den Beispielen in Github einzurichten, aber ich kann nicht herausfinden, was falsch ist. Ich erhalte immer den FehlerJavaScript-Abhängigkeitsinjektion mit RequireJS, Jasmine und testr

Error: module has not been loaded: today

wenn testr versucht, das Modul zu laden, das getestet werden soll.

Hier einige Kontext ..

index.html ..

<script data-main="config" src="../../assets/js/libs/require.js"></script> 
<script src="vendor/testr.js"></script> 

config.js ..

require.config({ 

    // Initialize specs. 
    deps:["main"], 
... 
... 
}); 

main.js ..

require([ 
    // Load the example spec, replace this and add your own spec 
    "spec/today" 
], function() { 
    var jasmineEnv = jasmine.getEnv(); 
    jasmineEnv.execute(); 
}); 

spec \ today.js ..

describe('Today print', function() { 
    var date = {}, today; 
    beforeEach(function() { 
    date.today = new Date(2012, 3, 30); 
    today = testr('today', {'util/date': date}); //Here is where the error is thrown 
    }); 

    it('is user-friendly', function() { 
    expect(today.getDateString()).toBe('Today is Monday, 30th April, 2012'); 
    }); 
}); 

today.js ..

define(['string', 'util/date'], function(string, date) { 
    return { 
    getDateString: function() { 
     return string.format('Today is %d', date.today); 
    } 
    } 
}); 

Gibt es jemanden, der mit der gewesen sein gleiche Art von Ärger? . Ich benutze RequireJS 2.0.6

Danke.

Antwort

1

Ihr 'today'-Modul muss von requirjs geladen werden, bevor Sie es mit testr verwenden. Versuchen Sie so etwas wie:

require(['today'], function(){ 
    describe('Today print', function() { 
     var date = {}, today; 
     beforeEach(function() { 
     date.today = new Date(2012, 3, 30); 
     today = testr('today', {'util/date': date}); //Here is where the error is thrown 
     }); 

     it('is user-friendly', function() { 
     expect(today.getDateString()).toBe('Today is Monday, 30th April, 2012'); 
     }); 
    }); 
}); 

Lesen Sie auch: http://cyberasylum.janithw.com/mocking-requirejs-dependencies-for-unit-testing/

+0

in Ordnung. Ich habe gerade daran gearbeitet, Testergebnisse für ein paar Tage zu bekommen. Das ist das nächste, das ich zu einem Beispielprojekt gefunden habe. Ich habe ein Github-Repo für dieses Beispiel erstellt (mit einigen kleineren Verbesserungen), das Jasmin verwendet, um es mit anderen zu teilen. Es funktioniert jedoch immer noch nicht. Kann mir hier jemand helfen? Vielen Dank. https://github.com/loesak/jasmine-maven-require-testr – loesak

+0

Ich habe das gleiche Problem. Tatsächlich lade ich es manuell als dep in meine require.config, und Karma zeigt, dass die Datei angefordert wird (zuerst). – FlavorScape