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