Recently I looked through some JUnit 3.8 - JUnit 4 stuffs. Here are two useful readings in the subject: First is at IBM , other is on DevX . JUnit 4.X is basically direct improvement of JUnit 3.X with exploiting new features of JDK5. Current version is 4.4 and it can be downloaded from www.junit.org . What have been changed? It needs (surprisingly) at least Java 5. Package has been changed from junit.framework to org.junit . Using @Test annotations instead of naming conventions. Methods must be public with void return type and they shouldn't have parameters. If we don't comply with these we would expect the following runtime exceptions: java.lang.Exception: Method xxx should have no parameters java.lang.Exception: Method xxx should be void Using static import: import static org.junit.Assert.assertEquals; We can write instead of Assert.assertEquals(...); a sorter assertEquals(...); . (Of course we can use static import with JUnit 3.8 if we have Java 5.) Extending TestCase ...