【问题标题】:beforeEach is being called for every test instead of just once每次测试都调用 beforeEach 而不是只调用一次
【发布时间】:2015-01-31 13:01:58
【问题描述】:

我在使用 beforeEach async 时遇到了一种情况,我的规范中有几个测试。 我看到 beforeEach 被调用每个测试运行而不是在所有测试之前只运行一次 - 我做错了什么? 这是我的代码:

describe("desc1", function () {

   beforeEach((done) => {
   // some logic
        done();

    });

}
describe("desc2",() => {

    it("has a value", () => {
        expect().toBe('');
    });
    it("has a value", () => {
        expect().toBe('');
    });
    it("has a value", () => {
        expect().toBe('');
    });

});        
});

});

如你所见,我正在使用 Typescript 和 Chutzpa

【问题讨论】:

  • 在 mocha 中有 before hook 和 beforeEach hook,所以打字稿中的 hook 之前可能会有一些东西
  • beforeEach 每次测试都会被调用
  • 好的。所以在我的 beforeEach 中,我有异步加载的脚本。我可以检查这是否是我的第一个测试并加载它们,但我只是在徘徊,如果有一种方法可以调用 beforeEach 一次进行描述。
  • within describe just user before(done){ //你想做什么 done()} 对于每个描述它只会在测试之前为每个描述运行一次
  • 看起来“之前”无法识别。有一个 beforeSuite:npmjs.com/package/jasmine-before-suite

标签: javascript jasmine chutzpah


【解决方案1】:

顾名思义,“beforeEach”在每次测试之前运行,您应该使用“before”

【讨论】:

    【解决方案2】:

    您可以像这样使用before 命令

    describe('desc1', () => {
      before(() => {
        cy.log('Logged Once Before All tests');
      });
    
      beforeEach(() => {
        cy.log('Logged Before Every test');
      })
    
      it("has a value", () => {
        expect().toBe('');
      });
      it("has a value", () => {
        expect().toBe('');
      });
      it("has a value", () => {
        expect().toBe('');
      });
    });
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2022-09-28
      • 1970-01-01
      • 2017-05-06
      • 2017-09-15
      相关资源
      最近更新 更多