【发布时间】:2016-01-19 23:00:02
【问题描述】:
我有一个使用以下模式创建的 requirejs 模块:
// foo.js
define(function(){
var x = 0;
function doStuff(){
return ++x;
}
return { doStuff: doStuff };
});
还有一个看起来像这样的 QUnit 测试:
// testfoo.js
define(['QUnit, foo'], function(QUnit, foo){
function setup(){
//...?
}
function teardown(){
//...?
}
function runTests(){
QUnit.test('foo counter remains at 1 on multiple tests', function(assert){
assert.equal(foo.doStuff(), 1); // this will work
});
QUnit.test('foo counter remains at 1 on multiple tests', function(assert){
assert.equal(foo.doStuff(), 1); // this obviously won't
});
}
return runTests;
});
如何为每次测试重置foo?
我想保留 foo 一个显示模块,即不将其转换为具有更改原型的构造函数。
我试过var foo = require('foo');,但由于 requirejs 是基于 AMD 的,它会抱怨加载顺序错误。
【问题讨论】:
标签: javascript unit-testing requirejs qunit