如何使用Intern测试纯JavaScript

时间:2017-11-28 04:00:53

标签: intern

我是TDD新手并使用Intern v4编写单元测试。我已经阅读了文档,但我仍然无法编写测试。如果有人能指出我正确的方向,我将不胜感激。

我的javascript代码如下:

var app = (function(){
    let name = 'Mufasa';
    let fullname = '';
    return {
        print: function(surname) { 
            fullname = `hello ${name} ${surname}`;
            console.log(fullname);
            return fullname;
        }
    }
})();

app.print('Vader');

我已经通过npm在我的项目中加入了实习生。

我的单元测试文件test1.js如下:

const { suite, test } = intern.getInterface('tdd');
const { assert } = intern.getPlugin('chai');



// how do i write my first test case here to check the output when i pass/do not pass the surname parameter

1 个答案:

答案 0 :(得分:0)

由于您使用的是非模块化JS,因此您的应用程序将被加载到全局命名空间中(即,它可以作为window.app访问)。测试可能如下:

suite('app', () => {
    test('print', () => {
        const result = app.print('Smith');
        assert.equal(result, 'hello Mufasa Smith');
    })
});

要让Intern能够调用您的app.print函数,您的应用程序脚本将需要加载。假设您的代码适用于浏览器,您可以在测试套件中使用Intern的loadScript函数,也可以将脚本作为插件加载。

suite('app', () => {
    before(() => {
        return intern.loadScript('path/to/script.js');
    });

    // tests
});

// intern.json
{
    "plugins": "path/to/script.js"
    // rest of config
}