Skip to main content

differences between 2 JUnit Assert classes



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


Comments

  1. 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.

    ReplyDelete
  2. JUnit 3.X: junit.framework.Assert
    JUnit 4.X: org.junit.Assert

    Prefer the newest one, especially when running JDK5 and higher with annotation support.

    ReplyDelete
  3. I believe they are refactoring from junit.framework to org.junit and junit.framework.Assert is maintained for backwards compatibility.

    ReplyDelete
  4. There is in fact a functional change: org.junit.Assert will complain if you use the two-argument assertEquals() with float or double, while junit.framework.Assert will silently autobox it.

    ReplyDelete
  5. I did a rough source code compare and there are no serious changes.

    Lot of comments were added in org.junit.Assert and some refactorings are done.

    The only change is the comparison with Arrays. There are some code clean ups, but there's (imho) no functional change.

    ReplyDelete
  6. There are other functional change today.

    org.junit.Assert.assertEquals(float expected, float actual, float delta) is exist no longer.
    It still exists in junit.framework.
    Not easy to compare floats in these conditions... I must cast them in object and then use assertEquals(Object expected, Object actual).
    Anyone has a more fluent solution (without reusing the old api, of course) ?

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

CCNA 3 Final Exam => latest version

1 . Which security protocol or measure would provide the greatest protection for a wireless LAN? WPA2 cloaking SSIDs shared WEP key MAC address filtering   2 . Refer to the exhibit. All trunk links are operational and all VLANs are allowed on all trunk links. An ARP request is sent by computer 5. Which device or devices will receive this message? only computer 4 computer 3 and RTR-A computer 4 and RTR-A computer 1, computer 2, computer 4, and RTR-A computer 1, computer 2, computer 3, computer 4, and RTR-A all of the computers and the router   3 . Refer to the exhibit. Hosts A and B, connected to hub HB1, attempt to transmit a frame at the same time but a collision occurs. Which hosts will receive the collision jamming signal? only hosts A and B only hosts A, B, and C only hosts A, B, C, and D only hosts A, B, C, and E   4 . Refer to the exhibit. Router RA receives a packet with a source address of 192.168.1.65 and a destination address of 192.168.1.161...