54

私はジャスミンを使ってテストを書いています。

いくつかのテストファイルがあり、各ファイルにはがありますが、beforeEachそれらはまったく同じです。

どうすれば彼らにグローバル beforeEachを提供できますか?

4

2 に答える 2

79

x1a4の答えは私を混乱させました。これはより明確かもしれません:

すべてのブロックの外側beforeEachで関数を宣言すると、各テストの前に(つまり、各の前に)トリガーされます。ブロックの前と後のどちらを宣言するかは関係ありません。describeitbeforeEachdescribe

これは、テスト実行に含まれる任意のスペックファイルに含めることができます。これには、すべて単独のファイルも含まれます。したがって、グローバルbeforeEach宣言のみを含む可能性のあるスペックヘルパーファイルの概念です。

ドキュメントには記載されていません。

// Example: 

beforeEach(function() {
    localStorage.clear();
});

describe('My tests', function() {
    describe('Test localstorage', function() {

        it('Adds an item to localStorage', function() {
            localStorage.setItem('foo', 'bar');
            expect(localStorage.getItem('foo')).toBe('bar');
        });

        it('Is now empty because our beforeEach cleared localStorage', function() {
            expect(localStorage.getItem('foo')).toBe(null);
        });

    });
});
于 2014-07-31T08:01:48.417 に答える
9

あなたはそれをあなたのファイルに入れることができspec_helper.js、それはうまくいくはずです。

于 2012-05-12T04:40:25.947 に答える