我一直在尝试更改运行时的"IT"描述,知道量角器是异步的,我仍然觉得我错过了一些东西。
describe('Describe something', function() {
var testParams = [1,2,3,4,5,6,7,8,9,10];
var testVar;
beforeEach( function() {
// ...
testVar = "Eyooo";
});
for (var i = 0; i < testParams.length; i++) {
(function (testSpec) {
// ...
it('should do something '+testVar , function () {
//...
console.log(testVar);
});
// ...
})(testParams[i]);
};
});
就是这部分我一直有问题
it('should do something '+testVar , function () {
知道情况正在异步处理,我一直有一个艰难的时间试图找出'it'的描述是何时加载的。
当我运行上面的代码时,这是我的输出
Describe something
√ should do something undefined
Eyooo
√ should do something undefined
Eyooo
所以结果有点明显,但我一直很难理解这一点。我想这违反了行业标准,但这对我的案子很有帮助。
我也试过这样做…
it('should do something', function() {
testVar = "Eyooo";
});
it('should do something '+testVar, function () {
//...
console.log(testVar);
});
to no avail
欢迎任何输入!
这个问题问得好。必须进行脑力激荡!
你完全找到了错误的根本原因。它是异步的我认为动态构建"IT"
块描述的解决方案不是通过BeforeEach()
而是调用自定义函数来分配名称
请检查您引用的相同示例,但修改为构建IT描述
describe('Describe something', function() {
var testParams = [1,2,3,4,5,6,7,8,9,10];
var testVar;
for (var i = 0; i < testParams.length; i++) {
(function (testSpec) {
// ...
it(getName(), function () {
//...
console.log(testVar);
});
// ...
})(testParams[i]);
};
function getName(){
testVar = "Eyooo";
return 'should do something '+testVar
}
});
另一个例子,不是在另一个IT块中编写构建描述的逻辑,而是在另一个自定义函数中构建它并调用它
describe('Describe something', function() {
var testVar
it(getName(), function () {
//...
console.log(testVar);
});
function getName(){
testVar = "Eyooo";
return 'should do something '+testVar
}
});