我一直试图改变我的“IT'关于运行时的描述,知道量角器是Async,我仍然觉得我错过了什么。
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 () {
知道案件正在处理异步,我一直在努力想弄清楚什么时候这个&#39;它&#39;说明已加载。
当我符文时,这是我的输出
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);
});
无济于事
欢迎任何输入!
答案 0 :(得分:1)
这是一个很好的问题。不得不集思广益!
您在reg上找到错误的根本原因。它表现为异步
我看到动态构建"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
}
});