2016-12-19 11 views
0

Мои @Before и @After методы не собирание по JUnitJunit 4 не поднимая мои методы @Before и @After

public class TestSetup { 

    @Before 
    public void browserSetUp() { 
    // code for before a test 
    } 


    @After 
    public void tearDown() { 
     // code after a test 
    } 
} 

В другом файле класса я определил

public class Steps{ 

@Step 
public void step1() { 
//Code for step 1 

} 

@Step 
public void step2() { 
// Code for Step 2 

} 

} 

Наконец я называю эти шаги для моего теста

public class Tests { 

Steps step = new Steps(); 

@Test 
public void TC_0001 { 
step.step1(); 
step.step2(); 

} 


} 

@Test метода становится исполненными но @Before и @After методы не выполняются до метода @Test. Должен ли я включать класс TestSetup? Любая помощь будет оценена по достоинству.

** Мысль 1: Как я использую Maven построить мои @Before@After методы находится в классе (TestSetup .java - имя не заканчивается *Test.java и может быть вот почему Maven не выбирает его для исполнения? .

ответ

1

@Before и @After используются в том же классе, что ваш тест работает Вы должны поместить эти методы на тестовом классе:

public class Tests { 

    Steps step = new Steps(); 

    @Test 
    public void TC_0001 { 
     step.step1(); 
     step.step2(); 
    } 

    @Before 
    public void browserSetUp() { 
     // code for before a test 
    } 


    @After 
    public void tearDown() { 
     // code after a test 
    } 

} 
+0

Вместо того чтобы помещать все в один и тот же класс '(@Test, @Before & @After)', можно ли каким-либо образом определить в другом классе, например 'TestSetup'? Затем наследовать от 'TestSetup' в классе' Tests'? – avirup

0

@Before и @After только исполненные до одного если они определены в том же классе, что и @Test. В вашем случае класс TestSetup не содержит тестов. Поэтому либо вы даете Test наследовать от TestSetup, либо вы создаете rule, который выполняется «вокруг» вашего теста.

+0

Итак, если я наследую методы TestSetup, выполняя следующие действия: public class Test s extends TestSetup {@Test public void TC_0001 {// code}} 'Его все еще не wokring – avirup