Junit behavior is that it creates a new instance of a class for every test case. The same way @Before is executed once before each test case.
Why do we need @Before when junit initializes the global variables for each test case.
Check the example below. What is the difference between code1 and code2.
Ex:
Code1
public class MyTest{
int count = 1;
@Test
public void test1(){
count++;
assertEquals(2, count);
}
@Test
public void test2(){
count++;
assertEquals(2, count);
}
}
Code2
public class MyTest{
private int count;
@Before
public void before(){
count=1;
}
@Test
public void test1(){
count++;
assertEquals(2, count);
}
@Test
public void test2(){
count++;
assertEquals(2, count);
}
}