2

RequireJS を使用して読み込まれたプロジェクトがあり、モデルをテストしたいと考えています。

私は次のテストを持っています:

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: Unexpected token」というエラーが表示されます...

実際には、バックボーン/requireJs プロジェクトを Jasmine でテストできるかどうかはわかりません。実際、ビュー/モデルを含めるにはどうすればよいですか...構成を必要とせずに(パスの定義など...)

ありがとうございます

Ps : aa js cmd でテストしたいことを指定するための小さな編集です。いいえ、ブラウザではありません。:)

4

1 に答える 1

4

jasmine を使用して backbone/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>

これをブラウザの外で実行したいので、PhantomJSgrunt、およびgrunt-jasmine-taskを調べてください。

于 2012-07-14T04:32:20.297 に答える