无返回类型函数的Javascript单元测试

无返回类型函数的Javascript单元测试,javascript,unit-testing,Javascript,Unit Testing,我刚刚开始从事JavaScript单元测试,我对它还不熟悉 我发现了许多单元测试框架,我决定使用QUnit。但我想问的是,在单元测试中,大多数框架都是这样的:我们将不同的值传递给函数,然后将返回值与预期值进行比较,然后通过或不通过测试。 在我的例子中,我并没有让所有的函数都返回值。一些正在更改的类变量,如vars数组等在同一个函数中更改 所以我只想问,有没有一种方法可以检查这种类型的函数,或者它必须有一个返回类型 如果是,我应该事先知道每个变量或数组的预期值吗 感谢您的帮助如果函数只是修改成员数

我刚刚开始从事JavaScript单元测试,我对它还不熟悉

我发现了许多单元测试框架,我决定使用QUnit。但我想问的是,在单元测试中,大多数框架都是这样的:我们将不同的值传递给函数,然后将返回值与预期值进行比较,然后通过或不通过测试。 在我的例子中,我并没有让所有的函数都返回值。一些正在更改的类变量,如vars数组等在同一个函数中更改

所以我只想问,有没有一种方法可以检查这种类型的函数,或者它必须有一个返回类型

如果是,我应该事先知道每个变量或数组的预期值吗


感谢您的帮助

如果函数只是修改成员数据,您可以在调用函数之前查询数据,然后在调用函数之后再次查询该数据。通过这种方式,您可以确定函数实际上是否在做它应该做的事情,以及它应该做的事情

伪示例:

var MyClass = function(data) {

    // Suppose data is an array
    this.data = data;


    this.sort = function() {
        // sorts data
    };

};

// Test #1:
var myClass = new MyClass([5, 3, 2, 4, 1]);
myClass.sort();

var expected = [1, 2, 3, 4, 5];
deepEqual(myClass.data, expected);

如果函数只是修改成员数据,则可以在调用函数之前查询数据,然后在调用函数之后再次查询该数据。通过这种方式,您可以确定函数实际上是否在做它应该做的事情,以及它应该做的事情

伪示例:

var MyClass = function(data) {

    // Suppose data is an array
    this.data = data;


    this.sort = function() {
        // sorts data
    };

};

// Test #1:
var myClass = new MyClass([5, 3, 2, 4, 1]);
myClass.sort();

var expected = [1, 2, 3, 4, 5];
deepEqual(myClass.data, expected);