Check Backbone/requireJs project met Jasmine

Ik heb een project geladen met RequireJS en ik zou de modellen willen testen.

Ik heb de volgende test:

require(['../../js/models/lead_sharing'], function(Lead_sharing_Model) {
    describe('when instantiated', function() {
        it('should exhibit attributes', function() {
            var test = new Lead_sharing_Model({
                attribute : 3
            });
            expect(test.get('attribute')).toEqual(3);
        });
    });
});

Maar ik heb een fout "failed with error: SyntaxError: Unexpected token" ...

In werkelijkheid weet ik niet of het mogelijk is om een ​​backbone/requireJs-project met Jasmine te testen. Inderdaad, hoe kan ik mijn weergaven/Modellen opnemen ... zonder configuratie nodig te hebben (zoals de definitie van de paden ...)

Dank U

Ps: slechts een kleine bewerking om aan te geven dat ik zou willen testen met een a JS cmd. nee in een browser. :)

2
precies, jasmine.js :)
toegevoegd de auteur Frédéric GRATI, de bron
Bedankt voor de link, echt nuttig :) maar niet voor mijn pb :( Omdat je kunt zien dat alle voorbeelden voor jasmijn-testen geschreven zijn zonder requireJS te gebruiken. En ik wil mijn project laden met requireJS en het testen met JasmineJS.
toegevoegd de auteur Frédéric GRATI, de bron
Heeft u het over unit testing ?
toegevoegd de auteur Jared Farrish, de bron
Ooops, sorry, verkeerde link: Eenheidstesten Backbone-toepassingen met Jasmine Bevat secties over testen modellen, collecties, views. Geen idee of je dat wel of niet gezien wordt. Ze bespreken zelfs opdrachtregel testen .
toegevoegd de auteur Jared Farrish, de bron

1 antwoord

Het is zeker mogelijk om een ​​backbone/requirejs-project met jasmijn te testen. Trek aan dezelfde configuratie die door de app wordt gebruikt op de html-pagina die de unit-tests aanstuurt. Bijvoorbeeld:

<!DOCTYPE HTML>

<head>
  <link rel="stylesheet" href="vendor/jasmine.css">
</head>

<body>
  <script src="vendor/jasmine.js"></script>
  <script src="vendor/jasmine-html.js"></script>
  <script src="../assets/js/libs/jquery.js"></script>
  <script src="../assets/js/libs/underscore.js"></script>
  <script src="../assets/js/libs/backbone.js"></script>

  <!-- This points to the require config that is also used by the main app. -->
  <script data-main="../app/config" src="../assets/js/libs/require.js"></script>

  <script>
    require({ paths: { spec: "../test/spec" } }, [
     //Pull in all your modules containing unit tests here.
      "spec/lead-sharing-specs"
    ], function() {
      jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
      jasmine.getEnv().execute();
    });
  </script>
</body>
</html>

Aangezien u dit buiten de browser wilt uitvoeren, bekijkt u PhantomJS , grunt en grunt -jasmine-task .

4
toegevoegd
Dit maakt geen volledig gebruik van require.js. Ik zou de library's ook opnemen in require.js (maar dan heb ik nog geen manier om dat werk te krijgen).
toegevoegd de auteur Brian Barnes, de bron