JUnit 4 in 60 Seconds

JUnit 4 in 60 Seconds

      I played with JUnit 4 library this weekend and here is the short introduction to it:

    1. @Test
      Mark your test cases with @Test annotations. You don’t need to prefix your test cases with “test”.  In addition, your class does not need to extend from “TestCase” class.

       

      @Test
      public void addition() {
      assertEquals(12, simpleMath.add(7, 5));
      }

      @Test
      public void subtraction() {
      assertEquals(9, simpleMath.substract(12, 3));
      }

    2. @Before and @After
      Use @Before and @After annotations for “setup” and “tearDown” methods respectively. They run before and after every test case.

       

      @Before
      public void runBeforeEveryTest() {
      simpleMath = new SimpleMath();
      }

      @After
      public void runAfterEveryTest() {
      simpleMath = null;
      }

    3. @BeforeClass and @AfterClass
      Use @BeforeClass and @AfterClass annotations for class wide “setup” and “tearDown” respectively. Think them as one time setup and tearDown. They run for one time before and after all test cases.

       

      @BeforeClass
      public static void runBeforeClass() {
      // run for one time before all test cases
      }

      @AfterClass
      public static void runAfterClass() {
      // run for one time after all test cases
      }

    4. Exception Handling
      Use “expected” paramater with @Test annotation for test cases that expect exception. Write the class name of the exception that will be thrown.

       

      @Test(expected = ArithmeticException.class)
      public void divisionWithException() {
      // divide by zero
      simpleMath.divide(1, 0);
      }

    5. @Ignore
      Put @Ignore annotation for test cases you want to ignore. You can add a string parameter that defines the reason of ignorance if you want.

      @Ignore(“Not Ready to Run”)
      @Test
      public void multiplication() {
      assertEquals(15, simpleMath.multiply(3, 5));
      }
    6. Timeout
      Define a timeout period in miliseconds with “timeout” parameter. The test fails when the timeout period exceeds.

       

      @Test(timeout = 1000)
      public void infinity() {
      while (true)
      ;
      }

    7. New Assertions
      Compare arrays with new assertion methods. Two arrays are equal if they have the same length and each element is equal to the corresponding element in the other array; otherwise, they’re not.

       

      public static void assertEquals(Object[] expected, Object[] actual);
      public static void assertEquals(String message, Object[] expected, Object[] actual);

      @Test
      public void listEquality() {
      List expected = new ArrayList();
      expected.add(5);

      List actual = new ArrayList();
      actual.add(5);

      assertEquals(expected, actual);
      }

    8. JUnit4Adapter
      Run your Junit 4 tests in Junit 3 test runners with Junit4Adapter.

       

      public static junit.framework.Test suite() {
      return new JUnit4TestAdapter(SimpleMathTest.class);
      }

posted on 2015-11-07 23:20  丁丁·全栈工程师  阅读(230)  评论(0编辑  收藏  举报

导航