2012-05-12 5 views
44

Я использую Жасмин для написания тестов.Глобальный `beforeEach` в жасмине?

У меня есть несколько тестовых файлов, каждый файл имеет beforeEach, но они точно такие же.

Как обеспечить глобальныйbeforeEach для них?

ответ

7

Вы можете положить его в свой файл spec_helper.js и он должен работать нормально.

+0

ли это 'spec_helper.js' будет признан жасмин автоматически? – Freewind

+0

Не автоматически - мы добавили нашу в каталог 'helpers'. – x1a4

+1

Вы хотите, чтобы мы требовали ('./ spec_helper ')' в каждом из наших тестовых файлов? – Freewind

57

Ответ x1a4 смутил меня. Это может быть более ясным:

При объявлении beforeEach функции вне всех describe блоков, она будет срабатывать перед каждым испытанием (поэтому перед каждым it). Не имеет значения, объявите ли вы beforeEach до или после ваших блоков describe.

It's not mentioned in the documentation.

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

    }); 
}); 
Смежные вопросы