美文网首页
Junit使用笔记

Junit使用笔记

作者: wangmin | 来源:发表于2016-02-27 15:33 被阅读112次

    Junit的所有测试方法都是以@Test修饰,以public void 开头。如下:

    @Test
    public void testAdd() {
        assertEquals(0, new Calculate().add(0, 1));
    }
    

    @BeforeClass && @AfterClass 都是只会执行一次,@BeforeClass是在类加载的时候执行,@AfterClass 是整个类结束的时候被执行,整个方法是一个静态方法。

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        System.out.println("before class");
    }
    
    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        System.out.println("after class");
    }
    

    @Before && @After两个方法是在每个测试方法执行的执行都会被执行,@Before是在方法执行前执行,@After是在方法执行结束后执行。

    @Before
    public void setUp() throws Exception {
        System.out.println("before");
    }
    
    @After
    public void tearDown() throws Exception {
        System.out.println("after");
    }
    

    @Ignore 所修饰的测试方法会被测试运行器忽略,例如以下的test1方法就会被测试运行器忽略执行。

    @Ignore
    @Test
    public void test1() {
        System.out.println("test1");
    }
    

    @Test(timeout=毫秒),用来指定时间上限,如果这个测试方法的执行时间超过了这个时间值则测试失败。

    // 会执行失败,因为sleep的时间长于设定的timeout时间
    @Test(timeout=1000)
    public void test() {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    

    @Test(expected=异常类),用expected来指定应该抛出的异常,如果在执行过程中没有抛出异常或者抛出的异常不是指定的异常,则测试失败。

    // 这个测试案例会执行成功,因为指定的异常就是程序要抛出的异常
    @Test(expected=IndexOutOfBoundsException.class) 
    public void outOfBounds() 
    {
        new ArrayList<Object>().get(1);
    }
    

    测试套件就是组织所要测试的类一起运行,如果单个类单独的运行是比较麻烦的,可以使用测试套件一起运行这些测试类。需要注意的是:

    • 测试套件的类是不包含其他任何方法
    • 同时要更改测试运行器为Suite.class
    • 将要测试的类作为数组传入到SuiteClasses({})中
    // 更改测试运行器以及将要测试的类放入SuiteClasses中
      @RunWith(Suite.class)
      @SuiteClasses({ AppTest.class, CalculateTest.class, JunitFlowTest.class })
      public class AllTests {
          // 没有测试方法
      }
    

    相关文章

      网友评论

          本文标题:Junit使用笔记

          本文链接:https://www.haomeiwen.com/subject/rfbwkttx.html