在JavaScript测试用例中的所有和AfterAll之前

use*_*905 8 javascript unit-testing jasmine jasmine-jquery

我想在所有测试之前做一些事情,之后呢?组织代码的最佳方法是什么?例如:备份一些变量 - >清除它们 - >测试一些东西 - >恢复备份.'beforeEach'和'afterEach'太昂贵了.谢谢!

eda*_*dan 9

非常简单的解决方案:

describe("all o' my tests", function() {

  it("setup for all tests", function() {
    setItUp();
  });

  describe("actual test suite", function() {

  });

  it("tear down for all tests", function() {
    cleanItUp();
  });

});
Run Code Online (Sandbox Code Playgroud)

这样做的好处是,您可以将设置/拆卸放在任何地方(例如,在嵌套套件的开头/结尾).


Fra*_*ijk 6

Jasmine> = 2.1支持beforeAll/ afterAll为您的套件进行一次性设置和拆卸.

如果您使用的是Jasmine 1.x,您可以使用it它(如其他人所建议的)或加载支持beforeAll/afterAll的node_module,例如jasmine-before-all.


Eri*_*ric 0

在所有测试开始之前调用一个函数是很简单的;但是,Jasmine(至少 1.3.1)不允许您在 Reporter API 之外指定自己完成的回调。

这是我在Google 网上论坛上发现的一个快速小窍门。将其添加到您的SpecRunner.html或同等内容中。

var oldCallback = jasmineEnv.currentRunner().finishCallback;

jasmineEnv.currentRunner().finishCallback = function () {
    oldCallback.apply(this, arguments);

    // Do your code here
};

jasmineEnv.execute();
Run Code Online (Sandbox Code Playgroud)