2012-09-20 11 views
8

Po prostu szukam zastrzyku zależności w mojej strategii testu jednostkowego przy użyciu RequireJS i Jasmine. Naprawdę podoba mi się idea stojąca za testr i próbowałem ustawić testra podążając za przykładami w github, ale nie wiem, co jest nie tak. Zawsze pojawia się błąd, gdy testr próbuje załadować moduł, który ma zostać przetestowany.Wstrzyknięcie zależności JavaScript przy użyciu RequireJS, Jasmine i testera

Oto niektóre kontekst ..

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

Czy jest ktoś, że zostały z ten sam rodzaj kłopotów? . Używam RequireJS 2.0.6

Dzięki.

Odpowiedz

1

Twój "dzisiejszy" moduł musi zostać załadowany z requirejs, zanim użyjesz go z testrem. Spróbuj czegoś takiego:

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

Zobacz również: http://cyberasylum.janithw.com/mocking-requirejs-dependencies-for-unit-testing/

+0

porządku. Pracuję nad tym, aby testr pracował przez kilka dni prosto. To jest najbliższy przykład projektu. Stworzyłem repozytorium github dla tego przykładu (z kilkoma drobnymi poprawkami) używając jaśminu, aby podzielić się z innymi. Jednak nadal nie działa. Czy ktoś może tu pomóc? Dzięki. https://github.com/loesak/jasmine-maven-require-testr – loesak

+0

Mam ten sam problem. W rzeczywistości ręcznie ładuję go jako dep w moim require.config, a Karma pokazuje, że plik jest żądany (pierwszy). – FlavorScape

Powiązane problemy