2013-07-17 5 views
1

Я бег E2e испытания против AngularJS сайта, используя Карму и углового сценария.AngularJS Е2Е тестирования: Как выполнить код один раз (как beforeEach)

Я выполняю код для входа в функцию beforeEach перед каждым it блоком.

У моей функции входа в систему есть задержка ожидания, чтобы убедиться, что логин завершен правильно. Это отнимает много времени и неэффективно (не говоря уже о неэлегантном). Кроме того, пользователь будет входить только один раз во время сеанса, поэтому это будет более точно моделировать мой сценарий.

Что я ищу это before функции, которая выполняет вход только один раз для сбора it блоков, содержащихся в describe блока, но это средство, кажется, не существует (я проверил документы и исходный код).

Похоже на очевидное требование для библиотеки тестирования! Кто-нибудь решил эту проблему?

ответ

2

Вы могли бы использовать переменный флаг? например:

var bdone = false; 
describe('Search POC', function() { 
    beforeEach(function() { 
     if (!bdone) { 
      browser().navigateTo('login'); 
      console.log('navigated once'); 
      bdone = true; 
     } 
    }); 

    it ('should have an img link on the login results', function() { 
     expect(element('a:last').html()).toMatch(/jpg/); 
    }); 

    it ('should redirect to user details when clicked', function() { 
     element('#UserThumbImage:first').click(); 
     expect(browser().window().href()).toMatch(/user/); 
    }); 


}); 
+1

Ха-ха! Я громко рассмеялся, когда прочитал это. Это так просто и понятно, но никто не предлагал никаких других вариантов, поэтому это может быть единственным хорошим решением :-) – Scott

Смежные вопросы