Java Unit Test - Junit

Java Unit Test

JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。「经常与Mocktio一起使用」

JUnit 促进了“先测试后编码”的理念,强调建立测试数据的一段代码,可以先测试,然后再应用。
这个方法就好比“测试一点,编码一点,测试一点,编码一点……”,增加了程序员的产量和程序的稳定性,可以减少程序员的压力和花费在排错上的时间。

1 JUnit 中的重要的 API

核心思想通过断言来预言被测试方法是否按预期执行。
本文基于JUnit 4.1.2
在这里插入图片描述
JUnit中的最重要的程序包是 junit.framework 它包含了所有的核心类。
一些重要的类列示如下:

序号 类的名称 类的功能
1 Assert assert 方法的集合
2 TestCase 一个定义了运行多重测试的固定装置
3 TestResult TestResult 集合了执行测试样例的所有结果
4 TestSuite TestSuite 是测试的集合

1.1 Assert

Assert类的重要方法列式如下:

序号 方法 描述
1 void assertEquals(boolean expected, boolean actual) 检查两个变量或者等式是否平衡
2 void assertFalse(boolean condition) 检查条件是假的
3 void assertNotNull(Object object) 检查对象不是空的
4 void assertNull(Object object) 检查对象是空的
5 void assertTrue(boolean condition) 检查条件为真
6 void fail() 在没有报告的情况下使测试不通过

Assert代码:

public class AssertTest {
   
    @Test
    public void testAssertions() {
   
        //test data
        String str1 = new String("abc");
        String str2 = new String("abc");
        String str3 = null;
        String str4 = "abc";
        String str5 = "abc";
        int val1 = 5;
        int val2 = 6;
        String[] expectedArray = {
   "one", "two", "three"};
        String[] resultArray = {
   "one", "two", "three"};

        //Check that two objects are equal
        assertEquals(str1, str2);

        //Check that a condition is true
        assertTrue(val1 < val2);

        //Check that a condition is false
        assertFalse(val1 > val2);

        //Check that an object isn't null
        assertNotNull(str1);

        //Check that an object is null
        assertNull(str3);

        //Check if two object references point to the same object
        assertSame(str4, str5);

        //Check if two object references not point to the same object
        assertNotSame(str1, str3);

        //Check whether two arrays are equal to each other.
        assertArrayEquals(expectedArray, resultArray);
    }

}

1.2 注解

Junit 中的注解的列表以及他们的含义:

序号 注解 描述
1 @Test 这个注解说明依附在 JUnit 的 public void 方法可以作为一个测试案例。
2 @Before 有些测试在运行前需要创造几个相似的对象,在 public void 方法加该注释是因为该方法需要在 test 方法前运行。
3 @After 如果你将外部资源在 Before 方法中分配,那么你需要在测试运行后释放他们。在 public void 方法加该注释是因为该方法需要在 test 方法后运行。
4 @BeforeClass 在 public void 方法加该注释是因为该方法需要在类中所有方法前运行。
5 @AfterClass 它将会使方法在所有测试结束后执行,这个可以用来进行清理活动。
6 @Ignore 这个注释是用来忽略有关不需要执行的测试的,Junit 在类级别上使用 @Ignore 来忽略所有的测试用例。
7 @Test(timeout=1000) 测试用例执行时长大于指定的毫秒数,那么将自动被标记为失败。
8 @Test(except=RuntimeException.class) 测试用例抛出RuntimeException则pass。
9 @RunWith(Parameterized.class) 注入参数
1.2.1 @Before @After

使用@Before,@AfterJUnite执行过程:

  • 1 beforeClass() 方法首先执行,并且只执行一次。
  • 2 afterClass() 方法最后执行,并且只执行一次。
  • 3 before() 方法针对每一个测试用例执行,但是是在执行测试用例之前。
  • 4 after() 方法针对每一个测试用例执行,但是是在执行测试用例之后。
  • 5 在 before() 方法和 after() 方法之间,执行每一个测试用例。

代码如下:


public class JunitAnnotation {
   
    //execute before class
    @BeforeClass
    public static
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值