H__D  

Junit介绍

  JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。 

  JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

Junit简单使用

  1、新建一个普通的maven工程,引入依赖

1 <dependency>
2     <groupId>junit</groupId>
3     <artifactId>junit</artifactId>
4     <version>4.12</version>
5 </dependency>

  2、新建一个测试类JunitTest.java,并且写一个无入参,无返回值的普通方法,在方法上加上注解@Test,如下

 1 package com.test.junite;
 2 
 3 import org.junit.Test;
 4 
 5 public class JunitTest {
 6 
 7     @Test
 8     public void testJunit(){
 9         System.out.println("测试Junit,简单使用...");
10     }
11 }

  3、测试结果

    

Junit常用注解

  1、与测试流程相关的4个注解

 1 package com.test.junite;
 2 
 3 import org.junit.After;
 4 import org.junit.AfterClass;
 5 import org.junit.Before;
 6 import org.junit.BeforeClass;
 7 import org.junit.Test;
 8 
 9 public class JunitFlowTest {
10 
11     /**
12      * 1、@BeforeClass修饰的方法会在所有方法被调用前被执行
13      * 而且该方法是静态的,所有当测试类被加载后接着就会运行它
14      * 而且在内存中它只会存在一份实例,它比较适合加载配置文件
15      * 2、@AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接
16      * 3、@Before和@After会在每个测试方法的前后各执行一次
17      * 
18      */
19     
20     @BeforeClass
21     public static void setUpBeforeClass() throws Exception {
22         System.out.println("this is @BeforeClass ...");
23     }
24 
25     @AfterClass
26     public static void tearDownAfterClass() throws Exception {
27         System.out.println("this is @AfterClass ...");
28     }
29 
30     @Before
31     public void setUp() throws Exception {
32         System.out.println("this is @Before ...");
33     }
34 
35     @After
36     public void tearDown() throws Exception {
37         System.out.println("this is @After ...");
38     }
39 
40     @Test
41     public void test1() {
42         System.out.println("this is test1 ...");
43     }
44     
45     @Test
46     public void test2() {
47         System.out.println("this is test2 ...");
48     }
49 
50 }

    运行结果如下:

      

  2、与@Test相关的

 1 package com.test.junite;
 2 
 3 import static org.junit.Assert.assertEquals;
 4 
 5 import org.junit.Ignore;
 6 import org.junit.Test;
 7 
 8 public class AnnotationTest {
 9 
10     /**
11      * @Test:将一个普通的方法修饰成为一个测试方法
12      *     @Test(expected=XX.class)
13      *     @Test(timeout=毫秒)
14      * @BeforeClass:它会在所有方法运行前被执行,static修饰
15      * @AfterClass:它会在所有方法运行后被执行,static修饰
16      * @Before:会在每一个测试方法运行前被执行一次
17      * @After:会在每一个测试方法运行后被执行一次
18      * @Ignore:所修饰的测试方法会测试运行器被忽略
19      * @RunWiht:可以更改测试运行器 org.junit.runner.Runner
20      */
21     @Test(expected=ArithmeticException.class)
22     public void testDivide() {
23         assertEquals(3, 3 / 0);
24     }
25     
26     @Test(timeout=2000)
27     public void testTimeout() {
28         while (true) {
29             System.out.println("run forever ...");
30         }
31     }
32     
33     @Ignore
34     @Test
35     public void testIgnore() {
36         System.out.println("this is testIgnore ...");
37     }
38 }

Junit测试类编写原则

  1、测试方法必须使用@Test进行修饰

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

  3、新建一个源码目录来存放我们的测试代码

  4、测试类的包应该和被测试类保持一致

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

  6、测试类使用Test作为类名后缀(非必须)

  7、测试方法使用test作为方法前缀(非必须)

 

posted on 2019-08-27 00:32  H__D  阅读(4472)  评论(0编辑  收藏  举报