I’ve noticed that the JUnit framework contains 2 Assert
classes (in different packages, obviously) and the methods on each appear to be very similar. Can anybody explain why this is?
The classes I’m referring to are: junit.framework.Assert
and org.junit.Assert
.
Cheers,
Don
Solution:
The old method (of Junit 3) was to mark the test-classes by extending junit.framework.TestCase. That inherited junit.framework.Assert itself and your test-class gained the ability to call the assert-methods this way.
Since version 4 of junit the framework uses Annotations for marking tests. So you no longer need to extend TestCase. But that means, the assert-methods aren’t available. But you can make a static import of the new Assert-class. That’s why all the assert-methods in the new class are static methods. So you can import it this way:
import static org.junit.Assert.*;
After this static import, you can use this methods without prefix.
At the redesign they also moved to the new package org.junit, that follows better the normal conventions for package-naming.