Javascript 如何在QUnit中设置测试顺序?
我为我的构造函数编写测试集。此构造函数创建并初始化一些属性。我的测试测试每个属性。我还有一些数组,其中包含测试属性的名称。我的测试将它们测试的属性的名称添加到该数组中 测试完成后,必须启动我的特殊测试:它将构造函数定义的属性集与包含测试属性集的数组内容进行比较。如果测试了所有属性,则测试通过,否则失败 最后一个测试允许我确保我测试了所有属性。稍后,如果我添加了新属性,那么这个测试会立即让我知道我要添加新测试或测试集Javascript 如何在QUnit中设置测试顺序?,javascript,jquery,qunit,Javascript,Jquery,Qunit,我为我的构造函数编写测试集。此构造函数创建并初始化一些属性。我的测试测试每个属性。我还有一些数组,其中包含测试属性的名称。我的测试将它们测试的属性的名称添加到该数组中 测试完成后,必须启动我的特殊测试:它将构造函数定义的属性集与包含测试属性集的数组内容进行比较。如果测试了所有属性,则测试通过,否则失败 最后一个测试允许我确保我测试了所有属性。稍后,如果我添加了新属性,那么这个测试会立即让我知道我要添加新测试或测试集 (function(){ let instanceCheckedProp
(function(){
let instanceCheckedProps = [];
QUnit.test("Node() ctor: check the instance's id property.",
function (assert) {
let prop = 'id';
// here is my test code...
instanceCheckedProps.push(prop);
});
// Here is my other tests...
QUnit.test('Node() ctor : check if all properties have been tested',
function (assert) {
let node = new Tree.Node();
let allPropsChecked = true;
let instanceAllProps = Object.keys(node);
for (let i = 0; i < instanceAllProps.length; i++) {
if (!instanceCheckedProps.includes(instanceAllProps[i])) {
allPropsChecked = false;
break;
}
}
assert.ok(allPropsChecked);
});
})();
(函数(){
让instanceCheckedProps=[];
test(“Node():检查实例的id属性。”,
函数(断言){
设prop='id';
//这是我的测试代码。。。
instanceCheckedProps.push(道具);
});
//这是我的其他测试。。。
test('Node()ctor:检查是否所有属性都已测试',
函数(断言){
让node=new Tree.node();
让allPropsChecked=true;
让instanceAllProps=Object.keys(节点);
for(设i=0;i
但我发现QUnit启动我的测试的顺序与编写测试的顺序不同:我的特殊测试首先启动
我该如何解决它?这是预期的、正确的行为。在任何测试场景中。换句话说,你不应该让一个测试依赖于其他测试。您的最后一次测试根本不是测试,不应包括在内。相反,您应该采用一种开发策略,在编写代码之前先编写测试,以确保每个属性都有一个测试 你上面所说的是一个错误,并且会导致更多的问题!!我强烈建议您不要这样做。 综上所述,如果您不愿意改变您的做法,并且觉得您只是想实施变通方法,而不是正确地做事情,那么您可以在QUnit中探索
重新排序
。可能的重复