11

我正在尝试使用 jasmine 的beforeAllafterAll方法,用frisby.js创建一套测试,因为实际上,frisby 不支持这种方法。所以,这就是我想要做的:

var frisby = require('frisby');
describe("setUp and tearDown", function(){
    beforeAll(function(){
        console.log("test beforeAll");
    });

    afterAll(function(){
        console.log("afterAll");
    });

//FRISBY TESTS
}); //end of describe function

如果我将 before/afterAll 方法更改为 before/afterEach,则可以正常工作,但是当我使用 before/afterAll 时,控制台上会出现此错误:

消息:ReferenceError:未定义 beforeAll Stacktrace:ReferenceError:未定义 beforeAll

我的项目中安装了 jasmine 版本 2.3.2,所以,我不知道我需要做什么来集成这个方法。

4

2 回答 2

2

使用 jasmine 库而不是 jasmine-node 库。第二个不支持 beforeAll 和 afterAll 方法。

1- npm 安装 -g 茉莉花

2-茉莉花初始化

3-在规范文件夹中编写测试:

  describe("A spec using beforeAll and afterAll", function() {
    var foo;

    beforeAll(function() {
     foo = 1;
    });

    afterAll(function() {
     foo = 0;
    });

    it("sets the initial value of foo before specs run", function() {
      expect(foo).toEqual(1);
      foo += 1;
    });

   it("does not reset foo between specs", function() {
     expect(foo).toEqual(2);
   });
});

4-运行测试->茉莉花

于 2015-08-21T15:23:11.397 回答
1

当前版本的 frisby 不支持这种设置。社区,就像我自己一样渴望这个功能,就像在这个问题中描述的那样。

该团队正在开发此功能,但它会出现在已经使用了一年多的软件包的第 2 版中。此链接上的更多信息。

于 2017-07-19T14:00:08.827 回答