我很确定我在某个地方读过这篇文章,但是现在找不到文档。如果我在同一beforeEach块中有两个describe块,是否保证可以顺序运行? IE浏览器:

describe("foo", function(){
  beforeEach(function(){
    print("I'm always first!");
  }

  beforeEach(function(){
    print("I'm always second!");
  }
}

最佳答案

来自http://jasmine.github.io/2.0/introduction.html


  可以嵌套描述调用,在任何级别定义规范。这允许将套件组合为功能树。在执行规范之前,Jasmine会按顺序执行每个beforeEach函数的树。执行该规范后,Jasmine将类似地执行afterEach函数。


这是我当前应用程序的示例代码。

nodeApp是主模块

describe("\n\nuser registration form testing", function() {

    beforeEach(module("views/createuser/createuser.html"), function() {

    });

    describe("\n\nUser createtion form should have valid data", function() {
        beforeEach(module("nodeApp"));
        beforeEach(inject(function($rootScope, $compile, $controller, $templateCache) {

        }))

    });
});


如果我将beforeEach(module("nodeApp"));放在second beforeEach之后
它抛出一个错误。因为nodeApp是负责注入所有服务的模块。
因此,以后可以在第二个beforeEach中进行注射

关于javascript - 同一范围内的beforeEach块是否按顺序运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36139066/

10-11 05:38