掌握Junit4,提高测试效率

98 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第二十一天,点击查看活动详情

在Java编程语言中JUnit是属于单元测试框架。JUnit在测试驱动开发的开发中非常重要,并且是从JUnit起源的一组单元测试框架(统称为xUnit)之一。

Java 语言现在支持泛型、枚举、可变长度参数列表和注释,这些特性为可重用的框架设计带来了新的可能。
JUnit4利用 Java 5 的新特性(尤其是注释)的优势,使得单元测试比起用最初的 JUnit 来说更加简单。

JUnit功能包括:

用于测试预期结果的断言

用于共享通用测试数据的测试装置

运行JUnit的测试运行程序最初由Erich Gamma和Kent Beck编写。

2.JUnit简单基础模板

以下模板是一个很好的起点。复制/粘贴和编辑这些模板以适适合您的编码样式。 这是一个代表基本测试模板的SampleTest类:

import static org.junit.Assert.*;
public class SampleTest {
        private java.util.List emptyList;
        @Before
        public void setUp() {
        emptyList = new java.util.ArrayList();
    }
    @After
    public void tearDown() {
        emptyList = null;
    }
    @Test
    public void testSomeBehavior() {
        assertEquals("Empty list should have 0 elements", 0, emptyList.size());
    }
    @Test(expected=IndexOutOfBoundsException.class)
    public void testForException() {
        Object o = emptyList.get(0);
    }
}

3.为什么要使用测试工具

①测试框架可以帮助我们对编写的程序进行有目的地测试,帮助我们最大限度地避免代码中的bug,以保证系统的正确性和稳定性。

②很多人对自己写的代码,测试时就简单写main,然后sysout输出控制台观察结果。这样非常枯燥繁琐,不规范。缺点:测试方法不能一起运行,测试结果要程序猿自己观察才可以判断程序逻辑是否正确。

③JUnit的断言机制,可以直接将我们的预期结果和程序运行的结果进行一个比对,确保对结果的可预知性。

问:在junit怎样通过before来实现删除或者追加不受影响的,可以多人同时测试的功能?

答:before是初始化方法,对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次),因此@Test测试方法的操作不会对程序有影响。