简述Junit单元测试(@Test)

Junit单元测试

  • 测试分类:
    • 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。功能简单的一些测试。输入:用户名,密码——>登录情况。
    • 白盒测试:需要写代码的。关注程序具体的执行流程。高级测试。写一些程序(测试人员、开发人员),对功能进行测试。

Junit介绍

Junit是一个Java语言的单元测试框架,属于白盒测试,简单理解为可以用于取代java的main方法是部分取代。Junit属于第三方工具,需要导入jar包(hamcrest-core-1.3.jar、junit-4.12.jar)后使用。

Junit的使用步骤

  1. 导入junit的第三方jar包(在当前的模块下新建一个lib文件夹,拷贝jar包,add as lib)
  2. 编写测试类,简单理解Junit可以用于取代java的main方法
  3. 在测试类方法上添加注解 @Test
  4. @Test修饰的方法要求:public void 方法名() {…} ,方法名自定义建议test开头,没有参数。
  5. 添加Junit库到lib文件夹中,然后进行jar包关联
  6. 使用:点击方法左侧绿色箭头,执行当前方法(方法必须标记@Test)。执行结果红色:代表失败;执行结果绿色:代表成功

举例:

package com.ccc.demo01Junit;

import org.junit.Test;

public class Demo01Junit {
    @Test
    public void test01(){
        System.out.println("test01方法");
    }

    @Test
    public void test02(){
        System.out.println("test02方法");
    }

    @Test
    public void test03(){
        System.out.println("test03方法");
    }
}

Junit的注意事项:

1.没有被@Test修饰的方法,不能使用Junit单元测试执行
2.Junit单元测试只能执行public void 修饰的空参数的方法

package com.ccc.demo01Junit;

import org.junit.Test;

public class Demo02Junit {
    public void test01(){
        System.out.println("test01");
    }

    //报错:java.lang.Exception: Method test02() should be public
    //@Test
    protected void test02(){
        System.out.println("test02");
    }

    //报错:java.lang.Exception: Method test03() should be void
    //@Test
    public int test03(){
        System.out.println("test03");
        return 0;
    }

    //报错:java.lang.Exception: Method test04 should have no parameters
    @Test
    public void test04(int a){
        System.out.println("test04");
    }
}

和Junit单元测试相关的注解

  • @Test,用于修饰需要执行的测试方法
  • @Before,修饰的方法会在测试方法之前被自动执行(一般可以用于获取资源)
  • @After,修饰的方法会在测试方法执行之后自动被执行(一般用于释放资源)

注意:

1.@Before和@After注解修饰的方法,不能单独执行
2.@Before和@After注解修饰的方法,会自动在每一个@Test修饰的方法前后执行。所以,我们可以把通用的一些东西写在这个里面。(这两个注释左侧没有绿色的三角,即不能单独的执行)

举例:

package com.ccc.demo01Junit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class Demo03Junit {

    @Test
    public void test01(){
        System.out.println("test01方法");
    }

    @Test
    public void test02(){
        System.out.println("test02方法");
    }

    @Test
    public void test03(){
        System.out.println("test03方法");
    }

    @Before
    public void before(){
        System.out.println("before方法");
    }

    @After
    public void after(){
        System.out.println("after方法");
    }
}
打印结果:每执行一次@Test,就都要执行一次@Before(在前)和@After(在后)

before方法
test01方法
after方法
before方法
test02方法
after方法
before方法
test03方法
after方法

猜你喜欢

转载自blog.csdn.net/qq_45083975/article/details/91488421