2012-06-24 3 views
2

У меня есть проект, загруженный с использованием RequireJS, и я хотел бы протестировать модели.Проверить проект Backbone/requireJs с Jasmine

У меня есть следующий тест:

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

Но у меня есть ошибка «не удалось с ошибкой: SyntaxError: Неожиданное знак» ...

На самом деле, я не знаю, если это возможно для того чтобы испытать проект позвоночника/requireJs с Жасмин. В самом деле, как я могу включить свои мнения/Модель ... без требуют конфигураций (например, определение путей ...)

Спасибо вам

Ps: просто небольшие редактировать, чтобы указать, что я хотел бы тест с aa js cmd. нет в браузере. :)

+0

Вы говорите об [модульном тестировании] (http://addyosmani.com/blog/unit-testing-backbone-js-apps-with-qunit-and-sinonjs/)? –

+0

точно, jasmine.js :) –

+0

Ooops, извините, неверная ссылка: [Unit Testing Backbone Applications with Jasmine] (http://addyosmani.github.com/backbone-fundamentals/#unittestingjasmine) Включает разделы по тестированию моделей, коллекций, Просмотры. Не знаю, видели ли вы это или нет. Они даже обсуждают [тестирование командной строки] (http://addyosmani.github.com/backbone-fundamentals/#optimizingrequirejs). –

ответ

4

Конечно, можно протестировать проект позвоночника/requirejs с жасмином. Вытащите ту же конфигурацию, что и приложение, на страницу html, которая управляет модульными тестами. Например:

<!doctype html> 
<html lang="en"> 
<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> 

Так как вы хотите, чтобы запустить это вне браузера, проверьте PhantomJS, grunt и grunt-jasmine-task.

+0

Это не в полной мере использует require.js. Я бы включил библиотеку в require.js (но тогда у меня пока нет способа получить эту работу). –

Смежные вопросы