如何将Intern添加到Dojo项目中?

时间:2016-12-06 21:06:31

标签: javascript dojo intern

Intern网站上的教程从使用npm获取实习开始,但我下载了最新版本的Intern源代码。 (我没有使用npm)我的app文件夹结构就像这样

|myapp
    |app
    |tests
       |unit
       |functional
    main.js
|third-party
    |dojo-release-1.10.6
    |intern-3.4.2
index.html

现在在我的index.html中,我在我的包config

中添加了以下内容
            packages: [
                { name: 'dojo', location: 'third_party/dojo-release-1.10.6-src/dojo' },
                { name: 'intern', location: 'third_party/intern-3.4.2' },
            ],

在此之后,我在哪里放置intern.js?

1 个答案:

答案 0 :(得分:0)

除了使用npm之外,使用Intern的基本过程与本教程中概述的相同。编写单元测试,然后使用Intern的三个测试运行器之一(intern-clientintern-runnerclient.html)来实际运行测试。

您不需要在应用程序包列表中包含Intern。相反,您将在您的实习测试配置中的loaderOptions对象中包含您的应用包。

您的测试如何与您的应用程序交互取决于您正在编写的测试类型。对于单元测试,您的单元测试套件将加载应用程序的各个部分,然后对它们运行测试。对于功能测试,您的测试(通过Intern)将告诉浏览器加载运行您的应用程序的测试页面,然后告诉浏览器采取各种操作。

// unit test
define([ 'intern!object', 'myApp/myModule' ], function (registerSuite, mod) {
    registerSuite({
        name: 'myApp/myModule',

        '#someFunction': function () {
            var value = mod.someFunction(...);
            // make assertion about value
        }
    });
});

// functional test
define([ 'intern!object' ], function (registerSuite) {
    registerSuite({
        name: 'myApp/myModule',

        '#someFunction': function () {
            return this.remote.get('myTestPage.html')
                .findById('someButton')
                .click()
                // make assertions about state of elements on the page
        }
    });
});

Intern本身是一个Dojo项目,默认情况下使用自己的自定义版Dojo来加载模块。这可能足以进行单元测试。如果不是,那么您需要在测试配置中设置loaders以指向您自己的Dojo dojo.js(加载器的路径应该与Intern的dojo/loader.js相对)。< / p>