tags:

views:

43

answers:

2

When I create an and run unit-test, (in Eclipse (Galileo) with JUnit 4.5 or 4.82),
the @Before is never executed (?).

Below is some sample-code. I would expect the output to be :

  initialize  
  testGetFour

But it is just :

  testGetFour

@BeforeClass and @AfterClass are never executed either.
Can someone tell me how come ?

public class SomeClass
{
  public static int getFour()
  {
    return 4;
  }  
}

//---

import org.junit.Before;
import org.junit.Test;
import junit.framework.TestCase;

public class TestSomeClass extends TestCase
{
  @Before 
  public void initialize() // This method will never execute (?!).
  {
    System.err.println("initialize"); 
  }

  @Test
  public void testGetFour()
  {
    System.err.println("testGetFour");        
    assertEquals(4, SomeClass.getFour());
  }  
}
+3  A: 

You should not extend from TestCase (JUnit 3 way of using JUnit) and it will work.

codescape
+5  A: 

Because you're extending TestCase. This is a JUnit3 class, and so Eclipse treats it as such. JUnit 4 does not require the test class to extend anything.

Remove that, it should work fine.

skaffman