如何使用 Intern 测试纯 javascript

How do I test plain javascript using 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

由于您使用的是非模块化 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
}