如何编写依赖于另一个套件变量的茉莉花测试套件? (茉莉花1.3)

时间:2014-03-13 18:25:54

标签: javascript jasmine protractor jasmine-node

我正在编写量角器测试套件,并且需要测试使用从另一个套件生成的页面的内容。我只能想出一种编写测试的方法,但它似乎不是一种编写它的好方法:

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'的情况下写这个?

1 个答案:

答案 0 :(得分:1)

一般情况下,你永远不应该在Jasmine里面进行任何设置登录&#39;描述&#39;块。当Jasmine正在设置您的测试时,其中的代码运行,而不是正确的顺序。如果你只是将for循环放在&#39;它中,那么你的第二种方法应该可行。块。