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.

    1. @Test
    2. publicvoidaddition(){
    3. assertEquals(12,simpleMath.add(7,5));
    4. }
    5. @Test
    6. publicvoidsubtraction(){
    7. assertEquals(9,simpleMath.substract(12,3));
    8. }
  2. @Before and @After
    Use @Before and @After annotations for “setup” and “tearDown” methods respectively. They run before and after every test case.

    1. @Before
    2. publicvoidrunBeforeEveryTest(){
    3. simpleMath=newSimpleMath();
    4. }
    5. @After
    6. publicvoidrunAfterEveryTest(){
    7. simpleMath=null;
    8. }
  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.

    1. @BeforeClass
    2. publicstaticvoidrunBeforeClass(){
    3. //runforonetimebeforealltestcases
    4. }
    5. @AfterClass
    6. publicstaticvoidrunAfterClass(){
    7. //runforonetimeafteralltestcases
    8. }
  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.

    1. @Test(expected=ArithmeticException.class)
    2. publicvoiddivisionWithException(){
    3. //dividebyzero
    4. simpleMath.divide(1,0);
    5. }
  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.
    1. @Ignore("NotReadytoRun")
    2. @Test
    3. publicvoidmultiplication(){
    4. assertEquals(15,simpleMath.multiply(3,5));
    5. }
  6. Timeout
    Define a timeout period in miliseconds with “timeout” parameter. The test fails when the timeout period exceeds.

    1. @Test(timeout=1000)
    2. publicvoidinfinity(){
    3. while(true)
    4. ;
    5. }
  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);

    1. @Test
    2. publicvoidlistEquality(){
    3. List<Integer>expected=newArrayList<Integer>();
    4. expected.add(5);
    5. List<Integer>actual=newArrayList<Integer>();
    6. actual.add(5);
    7. assertEquals(expected,actual);
    8. }
  8. JUnit4Adapter
    Run your Junit 4 tests in Junit 3 test runners with Junit4Adapter.

    1. publicstaticjunit.framework.Testsuite(){
    2. returnnewJUnit4TestAdapter(SimpleMathTest.class);
    3. }

Happy coding.

原文地址:http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/

注解过的Junit编写和测试都是一种享受。

你可能感兴趣的:(JUnit)