如何使用 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
}
我是 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
}