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中探索
重新排序

可能的重复