julia_v_iluhina

Untitled

Sep 10th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.72 KB | None | 0 0
  1. public class GmailTest {
  2.  
  3.     private WebDriver driver = new FirefoxDriver();
  4.  
  5.     @Before
  6.     public void setUp() {
  7.         Configuration.timeout = 15;
  8.     }
  9.  
  10.     @After
  11.     public void closeDriver() {
  12.         driver.quit();
  13.     }
  14. /*
  15.     Ну... можно и так
  16.  
  17.     важно - чтоб было понимание
  18.  
  19.     сейчас
  20.     перед запуском каждого тест-метода - мы делаем
  21.         новый вебдрайвер
  22.         настройку таймаута
  23.     после каждого тест-метода - мы делаем
  24.         закрываем вебдрайвер
  25.  
  26.     часто -  достаточно
  27.         единожды перед запуском всех тест-методов
  28.             создать вебдрайвер
  29.             настроить таймаут
  30.         единожды после работы всех тест-методов
  31.             закрыть вебдрайвер
  32.     такой вариант можно реализовать, используя
  33.             инициализацию статических полей тест-класса
  34.             static initialisation block
  35.             BeforeClass & AfterClass методы
  36.  
  37.     лучше исходить из задач и именно так реализовывать
  38.             твой вариант - подойдет для параллельного запуска тестов
  39.             но - будет избыточен для запуска тест-методов в одном потоке
  40.  
  41.     логику - создания и убивания вебдрайвера - вынеси в класс-предок тест-класса
  42.     разгрузим тест-класс
  43.     и получим универсального предка для тест-классов
  44.     заметь - я не предлагаю настройку таймаута выносить в предка
  45.     т к это уже детали для конкретного тест-класса - не надо портить универсальную логику предка
  46.  
  47.     полезные линки
  48.         instance initialization block - будет выполняться перед запуском каждого тест-метода
  49.         static initialization block - перед запуском всех тест-методов тест-класса
  50.         http://www.javamadesoeasy.com/2015/06/differences-between-instance.html
  51.         разница по эффекту - как использовать @Before или  @BeforeClass метод
  52.  
  53.             http://www.unknownerror.org/opensource/junit-team/junit/q/stackoverflow/512184/best-practice-initialize-junit-class-fields-in-setup-or-at-declaration
  54.  
  55.             http://www.javaworld.com/article/2076265/testing-debugging/junit-best-practices.html
  56.             (подзаголовок Do not use the test-case constructor to set up a test case)
  57. */
  58. **************************
  59.  
  60. public static ExpectedCondition<WebElement> listNthElementHasText(final List<WebElement> elements, final int index, final String expectedText) {
  61. ....
  62.             public String toString() {
  63.                 return String.format("element of list should have (\'%s\') text, while actual text is ('%s')", expectedText, actualText);
  64. /*
  65.   в фразе недостаточно описания - что такой-то по индексу элемент
  66.  
  67.   в следующей версии - когда локатор будет передан в кондишен
  68.   стоит и локатор отразить
  69.   в слеке это обсуждали
  70.   касается всех кондишенов
  71. */
Advertisement
Add Comment
Please, Sign In to add comment