我正在编写量角器测试套件,并且需要测试使用从另一个套件生成的页面的内容。我只能想出一种编写测试的方法,但它似乎不是一种编写它的好方法:
var someStuffToSave = [];
describe('description of first thing', function(){
it('should generate some things', function(){
someStuffToSave.push(generateSomeThings());
});
it('should generate some things', function(){
someStuffToSave.push(generateSomeThings());
});
it('should generate some things', function(){
someStuffToSave.push(generateSomeThings());
element(by.id("something")).getText().then(function(){
for(var i = 0; i < someStuffToSave.length; i++) (function(){
var idx = i;
describe('thing analysis' + idx, function(){
it('should be something', function(){
expect(someStuffToSave[idx]).toEqual(true);
});
});
})();
});
});
});
我宁愿做这样的事情,但问题是第二个描述的内部立即执行,并且不要等待第一个描述完成。
var someStuffToSave = [];
describe('description of some thing', function(){
it('should generate some things', function(){
someStuffToSave.push(generateSomeThings());
});
it('should generate some things', function(){
someStuffToSave.push(generateSomeThings());
});
it('should generate some things', function(){
someStuffToSave.push(generateSomeThings);
});
});
describe('analyzing things', function(){
for(var i = 0; i < someStuffToSave.length; i++)function(){
var idx = i;
describe('thing ' + idx, function(){
it('should be something', function(){
expect(someStuffToSave[idx]).toEqual(true);
});
});
}
});
有没有办法在第一个描述中没有'then'的情况下写这个?
答案 0 :(得分:1)
一般情况下,你永远不应该在Jasmine里面进行任何设置登录&#39;描述&#39;块。当Jasmine正在设置您的测试时,其中的代码运行,而不是正确的顺序。如果你只是将for循环放在&#39;它中,那么你的第二种方法应该可行。块。