我是使用AVA进行JS单元测试的新手,我立刻就遇到了问题:
我的情况是我想运行gulp任务来运行AVA测试并观察测试文件,在我编写的测试文件中,我需要包含包含要测试的代码的js文件。
问题是带有要测试的代码的文件是一个带有所有全局函数的旧js文件,因此需要以某种方式将其填充到AMD模块中,但是如何在不更改原始文件的情况下执行此操作?
gulpfile.js
{
"name": "name",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "ava"
},
"author": "",
"license": "ISC",
"devDependencies": {
"ava": "^0.16.0",
"gulp": "^3.9.1",
"gulp-ava": "^0.14.0",
"jsdom": "^9.4.2"
},
"ava": {
"require": [
"./test/helpers/setup-browser-env.js"
]
}
}
的package.json
import test from "ava";
// I need to import the js file to test
test.before(t => {
});
test("foo", t => {
t.pass();
});
test('bar', async t => {
const bar = Promise.resolve('bar');
t.is(await bar, 'bar');
});
firstTest.tests.js
renderArray()
谢谢!
答案 0 :(得分:0)
我认为你的意思是UMD,而不是AMD。 AMD不会工作。
我建议您关注recipe on browser testing with jsdom
。
您可以在顶部执行以下操作:
global.document = require('jsdom').jsdom('<body></body>');
global.window = document.defaultView;
require('./your-lib');
然后您可以在window
global:
window.yourLib();
yourLib
是你附加到图书馆window
的方法。