【问题标题】:Check Backbone/requireJs project with Jasmine使用 Jasmine 检查 Backbone/requireJs 项目
【发布时间】:2012-06-25 19:21:18
【问题描述】:

我有一个使用 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”...

实际上,我不知道是否可以使用 Jasmine 测试骨干网/requireJs 项目。确实,我怎样才能包含我的视图/模型...而不需要配置(例如路径的定义...)

谢谢你

Ps:只是一个小的编辑来指定我想用一个 js cmd 进行测试。在浏览器中没有。 :)

【问题讨论】:

  • 你说的是unit testing吗?
  • 糟糕,抱歉,链接错误:Unit Testing Backbone Applications With Jasmine 包括有关测试模型、集合、视图的部分。不知道你有没有看到。他们甚至讨论command-line testing。
  • 感谢链接,真的很有用:) 但不是我的 pb :( 因为你可以看到茉莉花测试的所有样本都是在不使用 requireJS 的情况下编写的。我想用 requireJS 加载我的项目和用 JasmineJS 测试它。

标签: javascript unit-testing backbone.js requirejs jasmine


【解决方案1】:

当然可以使用 jasmine 测试一个主干/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。

【讨论】:

  • 这并没有充分利用 require.js。我也会将库包含在 require.js 中(但我还没有办法让它工作)。
猜你喜欢
  • 2012-06-27
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多