54

我正在使用 Jasmine 编写测试。

我有几个测试文件,每个文件都有一个beforeEach,但它们完全相同。

我如何为他们提供一个全球性 beforeEach的?

4

2 回答 2

79

x1a4 的回答让我很困惑。这可能更清楚:

当您在所有块之外beforeEach声明一个函数时,它将在每次测试之前触发(因此在 each 之前)。声明块之前还是之后都没有关系。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 回答