3
  1. 是否可以为自定义客户端 JavaScript 创建和运行测试套件,而不是创建为 Node 模块?那么应该如何改变配置呢?

  2. Intern 配置中有 loader 部分,如果我做对了,指定将加载的包。是否有必要以某种方式在此处包含我的自定义 JS 代码?

  3. 我应该把我的测试套件放在哪里,它们应该是什么样子,当它们不属于任何 Node 包时,只属于我的自定义 JS 代码。换句话说,我将如何“加载”并运行它们?

我试图让它以某种方式工作,而我没有使用 Node.js 的经验。我的尝试结果如下:

$ node client.js config=tests/js/intern
Defaulting to "console" reporter
4

1 回答 1

6

1. 您的测试模块将始终需要编写为 AMD 模块,但您可以测试任何您想要的客户端代码。在您的测试模块中,只需像任何其他模块一样将非 AMD 代码指定为依赖项,然后访问您的脚本创建的全局变量:

define([
  'intern!tdd',
  'intern/chai!assert',
  'intern/order!myPackage/myFoo.js'
], function (tdd, assert /* note, no assignment here */) {
  tdd.suite('foo suite', function () {
    tdd.test('something in foo', function () {
      // accessing a global variable created by `myPackage/myFoo.js`
      assert.ok(window.myFoo, 'Global myFoo object should exist');
    });
  });
});

2. 你不需要在 Intern 配置中做任何明确的事情来让它工作,除了在suites数组中指定你的测试模块。

3. 需要测试的客户端应用程序的推荐目录结构如下所示:

/ - your entire application
    src/
        index.html - your app’s entry-point HTML
        app/ - your app package, containing application-specific JavaScript to be tested
            foo.js        - Some module `foo`
            tests/        - Intern tests for `app`
                foo.js    - Tests for `foo`
                intern.js - Intern configuration for `app`
    node_modules/
        intern/

当然,这取决于您的应用程序的架构方式,但从“从头开始”的方法,这是我们通常推荐的目录结构。

于 2013-05-01T20:31:39.140 回答