我意识到QUnit.module提供了围绕每个测试的设置和拆除回调.
QUnit.module("unrelated test",{ setup: function() { var usedAcrossTests = "hello"; } }); QUnit.test("some test",function(assert) { assert.deepEqual(usedAcrossTests,"hello","uh oh"); }); QUnit.test("another test",function(assert) { assert.deepEqual(usedAcrossTests.length,5,"uh oh"); });
如在setup中所见,我想声明一个变量以在以下QUnit.tests中使用.但是,由于变量只有函数作用域,因此两个测试失败,称usedAcrossTests未定义.
我可以删除var声明,但那样会污染全局范围.特别是如果我有多个模块,我宁愿不将特定于测试的变量声明为全局变量.
有没有办法在设置一个变量以在模块内的测试中使用而不污染全局范围?