gau*_*mar 7 javascript jasmine
我想在一次执行中多次运行我的jasmine测试用例.是否存在任何循环或任何其他方法在一次执行中执行特定规范.
您可以在普通的for循环中运行specs,如下所示:
for(var i = 0; i < 1000; ++i) {
it("random is in [0;1)", function () {
var r = Math.random();
expect(r >= 0 && r < 1).toBeTruthy();
});
}
Run Code Online (Sandbox Code Playgroud)
如果你想用不同的参数运行它有点棘手.您必须将循环参数绑定到闭包范围,否则将始终使用循环参数的最后一个值调用测试.
// WRONG: test called 10 times with i == 10
for(var i = 0; i < 10; ++i) {
it("i ^ 0 is 1", function () {
expect(Math.pow(i, 0)).toEqual(1);
});
}
// CORRECT: called with 1, 2, 3, 4....
for(var i = 0; i < 10; ++i) {
(function(num) {
it("i ^ 0 is 1", function () {
expect(Math.pow(num, 0)).toEqual(1);
});
})(i);
}
Run Code Online (Sandbox Code Playgroud)