javajunit

How to assert greater than using JUnit Assert?


I have these values coming from a test

previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"

and I try

    // current timestamp is greater
    assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));

I get the java.lang.AssertionError and detailMessage on debugging is null.

How can I assert greater than conditions in using JUnit


Solution

  • Just how you've done it. assertTrue(boolean) also has an overload assertTrue(String, boolean) where the String is the message in case of failure; you can use that if you want to print that such-and-such wasn't greater than so-and-so.

    You could also add hamcrest-all as a dependency to use matchers. See https://code.google.com/p/hamcrest/wiki/Tutorial:

    import static org.hamcrest.MatcherAssert.assertThat;
    import static org.hamcrest.Matchers.*;
    
    assertThat("timestamp",
               Long.parseLong(previousTokenValues[1]),
               greaterThan(Long.parseLong(currentTokenValues[1])));
    

    That gives an error like:

    java.lang.AssertionError: timestamp
    Expected: a value greater than <456L>
         but: <123L> was less than <456L>