gpt4 book ai didi

jquery - 如何使用 qUnit 的设置方法创建可用于模块内所有测试的对象/变量?

转载 作者:行者123 更新时间:2023-11-28 20:01:02 24 4
gpt4 key购买 nike

我有一个对象和一些变量,它们当前正在我编写的每个单独测试中声明(根本不是 DRY)。我想做的是在模块的设置方法中创建这个对象和变量,以便所有测试都可以访问该对象和变量。

这就是我目前尝试的方式:

QUnit.module("Main Function Test", {

setup: function() {

this.controls = {
validCharacters : /^[0-9a-zA-Z]+$/
,
searchResultTable : {
setVisible : setVisible
},
commentBoxContainer: {
setVisible : setVisible
}
};

var getValue = sinon.stub().returns(false);
var setEnabled = sinon.spy();
},
});

QUnit.test("someTest that should have access to the above 'controls' object and variables" ...

当我运行测试时,它们失败了,因为控件对象未定义或找不到变量(getValue 或 setEnabled)。

有人可以分享我做错了什么吗?或者使对象和变量可用于相应模块中的所有测试的正确方法?

最佳答案

我很确定,使用 QUnit,您只需在模块设置函数之外声明该数据变量,以便在测试中访问它...

// IIFE to contain variables in scope of this file...
(function() {

// variables to use across tests
var controls;
var getValue;
var setEnabled;

QUnit.module("Main Function Test", {
setup: function() {

// assign the controls value (declared above)
controls = {
validCharacters : /^[0-9a-zA-Z]+$/,
searchResultTable : {
setVisible : setVisible
},
commentBoxContainer: {
setVisible : setVisible
}
};

getValue = sinon.stub().returns(false);
setEnabled = sinon.spy();
}
});

QUnit.test("someTest" ...);

QUnit.test("someOtherTest" ...);

})();

关于jquery - 如何使用 qUnit 的设置方法创建可用于模块内所有测试的对象/变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41372741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com