8

すべてのテストの前に何かをしたいのですが、その後ですか? コードを整理する最良の方法は何ですか? 例: いくつかの変数をバックアップする -> それらをクリアする -> 何かをテストする -> バックアップを復元する。「beforeEach」と「afterEach」は高すぎます。ありがとう!

4

4 に答える 4

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();
  });

});

これには、セットアップ/ティアダウンをどこにでも配置できるという利点があります (たとえば、ネストされたスイートの最初/最後)。

于 2014-06-23T15:03:55.133 に答える
0

Jasmine には、独自のレポーターを作成して添付するオプションがあります。レポーターを実装するには、 、 、 などの基本的なコールバックがinitializeありjasmineStartedますjasmineDone。これにより、要件を達成できます。たとえば、Jasmine 2.0 では、jasmine-html.jsファイルを参照して基本的な理解を深めてください。

于 2014-02-12T15:29:44.867 に答える
0

すべてのテストが開始される前に関数を呼び出すのは簡単です。ただし、Jasmine (少なくとも 1.3.1) では、レポーター API の外部で独自の終了コールバックを指定することはできません。

これは、 Google グループで見つけた簡単なハックです。これをあなたSpecRunner.htmlまたは同等のものに追加してください。

var oldCallback = jasmineEnv.currentRunner().finishCallback;

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

    // Do your code here
};

jasmineEnv.execute();
于 2014-02-12T13:50:02.120 に答える