junit基本使用总结

Junit4基本使用:环境搭建,测试类生成,测试类执行,注意事项等总结

在eclipse项目中添加Junit4

(注:右击选中的project-》build path-》add libraries-》选中junit,next直到finish)

右击你的项目—->点击build path下面的configuare build path 
—->出现一个框如下: 

junit基本使用总结


按照上面的一二步找到要添加的library,接下来就是找到Junit一直next 

junit基本使用总结

 

junit基本使用总结

 

junit基本使用总结

 

Junit使用

编写被测试类

package com.sccba.portal;

public class Junit4 {

  public void test1(){
    System.out.println("this is test1");
  }
  
  public boolean test2(){
    System.out.println("this is test2");
    return false;
  }
  
 
  public int test3(){
    System.out.println("this is test3");
    return -1;
  }
  
  public int test4(int a,int b){
    System.out.println("this is test4");
    return a=b;
  }

}

右键被测试类(或者包)>new>JUnit Test Case

junit基本使用总结

选择要测试的方法

 

junit基本使用总结

 

package com.sccba.portal;

import org.junit.Assert;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class Junit4Test {

  @BeforeClass
  public static void setUpBeforeClass() throws Exception {
    System.out.println("this is BeforeClass");
  }

  @AfterClass
  public static void tearDownAfterClass() throws Exception {
    System.out.println("this is AfterClass");
  }

  @Before
  public void setUp() throws Exception {
    System.out.println("this is Before");
  }

  @After
  public void tearDown() throws Exception {
    System.out.println("this is After");
  }

  @Test
  public void testTest1() {
    Junit4 junit=new Junit4();
    junit.test1();
  }

  @Test
  public void testTest2() {
    Junit4 junit=new Junit4();
    Assert.assertFalse(junit.test2()); //test2方法返回false,所以测试也通过
  }

  @Test
  public void testTest3() {
    Junit4 junit=new Junit4();
    Assert.assertEquals(-1,junit.test3());//测试test3方法的返回值,后面为真实值,前面为期望值,这里返回-1,测试也通过
  }

  @Test
  public void testTest4() {
    Junit4 junit=new Junit4();
    Assert.assertEquals(6,junit.test4(1,5));
  }
}

 

[email protected]: 测试方法,在这里可以测试期望异常和超时时间

    a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过
    b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过

[email protected]: 被忽略的测试方法:加上之后,暂时不运行此段代码

[email protected]:初始化方法, 每一个测试方法之前运行

[email protected]: 释放资源,每一个测试方法之后运行

[email protected]: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法

[email protected]: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After

一个JUnit4 的单元测试用例执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After

 

常用断言

  • assertEquals(expected, actual)
    验证expected的值跟actual是一样的,如果是一样的话,测试通过,不然的话,测试失败。如果传入的是object,那么这里的对比用的是equals()
  • assertNotEquals(unexpected, actual)
    验证期望值与实际值不相等。
  • assertTrue(boolean condition)
    验证contidion的值是true
  • assertFalse(boolean condition)
    验证contidion的值是false
  • assertNull(Object obj)
    验证obj的值是null
  • assertNotNull(Object obj)
    验证obj的值不是null
  • assertSame(expected, actual)
    验证expected和actual是同一个对象,即指向同一个对象
  • assertNotSame(expected, actual)
    验证expected和actual不是同一个对象,即指向不同的对象
  • Assert.fail()
    让测试方法失败

 

注:Assert(断言)警告

如下图

junit基本使用总结

原因:

junit基本使用总结

注:Assert断言可以通过测试类集成TestCase类实现

 

 

 

测试类执行:

右键测试类>Run As>JUnit Test

 

junit基本使用总结

结果:

junit基本使用总结

(Failures一般是由测试方法中断言引起,这表示测试点出现了问题,证明被测试的方法返回的结果与我们预期的不一样

Errors一般是由被测试方法或者是测试方法中存在异常导致。)

状态条为绿色三个方法全部测试成功

 

如果对整个项目进行单元测试,控制台只会输出添加了@Test注解的方法的结果,说明只有添加了@Test注解的方法才会被JUnit测试。

此外,不是所有方法都适合用JUnit进行测试,JUnit对所测试的方法有一定的要求:

注意:编写测试类的原则: 

    ①测试方法上必须使用@Test进行修饰

        ②测试方法必须使用public void 进行修饰,不能带任何的参数

        ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开

        ④测试类所在的包名应该和被测试类所在的包名保持一致

        ⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖

        ⑥测试类使用Test作为类名的后缀(不是必须)

        ⑦测试方法使用test作为方法名的前缀(不是必须)