java里junit 单元测试、注释(入门)

发布时间 2023-11-13 17:13:13作者: 小池在线哭泣

什么是Junit单元测试?

JUnit 单元测试是指使用 JUnit 框架编写的针对代码中小的、独立的模块(通常是方法或者类)的测试

在 JUnit 中,您可以使用断言来验证代码的行为是否符合预期,以及使用注解来标记测试方法、测试套件等。执行单元测试可以帮助验证代码是否满足特定的业务需求和技术规范,增强代码的健壮性和可维护性。

总的来说,JUnit 单元测试是软件开发中非常重要的一环,它可以提供更可靠的代码更快速的开发迭代更好的代码质量以及更高的系统稳定性

为什么使用junit单元测试?

单元测试的目的是验证代码的每个组成部分都能按预期工作,并确保代码在进行修改时不会破坏原有的功能。通过编写单元测试,开发人员可以更加自信地进行重构、修改和优化代码,同时也可以更早地发现潜在的问题。

比如说你有一个项目要运行其中的一段代码,可能如果在我们平时就会把整个项目运行一遍,这样的话很浪费时间,我们便可以使用junit单元测试

怎么使用junit?

我们要先导入这个junit_4.9.jar的包

代码如下:

//导入org.junit.test的包
import org.junit.Test;
​
//判断年龄异常
public void setAge(int _age) throws Exception{
    if(_age<0 || _age>150){
        System.out.println("输入的年龄异常");
        throw new Exception("有问题");
    }
}
//进行测试
@org.junit.Test  // 注释
    public void show(){
    User us=new User();
    try{
        us.setAge(-20);
    }catch (Exception ex){
        System.out.println(ex.getMessage());
    }
}

 

@org.junit.Test是用来干嘛的

@org.junit.Test 是 JUnit 框架中的一个注解,它用于标记一个方法作为测试方法。具体来说,@org.junit.Test 注解可以用于任何公共的、无返回值的(void)方法,用于执行针对代码的单元测试。

当使用 JUnit 运行测试时,JUnit 框架会查找与 @Test 注解标记的方法,并将其作为一个测试用例进行执行。在执行测试过程中,JUnit 将自动运行带有 @Test 注解的方法,并记录测试结果(成功、失败或错误等)。

@Test 注解具有以下作用:

  1. 标记方法为一个测试方法:使用 @Test 注解可以明确指示该方法是一个测试用例,并且应该被 JUnit 框架执行。

  2. 提供测试方法的可读性:通过在方法上使用 @Test 注解,其他开发人员可以清楚地了解该方法的目的,并知道它是作为一个测试用例来执行的。

  3. 组织测试用例:您可以在单个测试类中编写多个带有 @Test 注解的测试方法,这样可以方便地组织和执行多个测试用例

总的来说,@org.junit.Test 注解起到标记一个方法为测试方法的作用,使其能够被 JUnit 框架自动发现和执行。

常用注释还有:

@Ignore、@BeforeClass、@AfterClass、@Before、@After

@Ignore 注解作为 JUnit 框架的一项功能,可帮助开发者临时禁用某些测试方法或测试类,确保测试执行的有效性和可靠性。

@BeforeClass 注解用于标记一个静态方法,在测试类中所有测试方法执行之前执行,确保测试环境的一致性和可靠性。使用 @BeforeClass 注解时,需要满足以下条件:

  1. 该方法必须是静态方法(static)。

  2. 该方法不能接受任何参数,且没有返回值(void)。

  3. @BeforeClass 注解的方法将在当前测试类的所有测试方法之前执行一次。

@AfterClass 注解用于标记一个静态方法,在测试类中所有测试方法执行之后执行,与 @BeforeClass注解可形成对应关系。

1.该方法需为静态方法(static),没有返回值,且不接受任何参数。

2.@AfterClass` 注解的方法在整个测试类的所有测试方法执行完毕后执行一次。

3.通常用于进行一些清理操作,例如关闭数据库连接、释放资源等。

@Before 注解用于标记一个非静态方法,在每个测试方法执行之前执行,该方法没有返回值,也不接受任何参数。

1.@Before 注解的方法在每个测试方法执行之前都会被调用一次。

2.通常用于进行一些测试准备工作,例如初始化对象、设置初始状态等。

@After 注解用于标记一个非静态方法,在每个测试方法执行之后执行,该方法没有返回值,也不接受任何参数。

  1. @After 注解的方法在每个测试方法执行之后都会被调用一次

  2. 通常用于进行一些清理操作,例如恢复现场、释放资源等。

  3. @After 注解被用于执行测试方法之后的清理操作。

package cn.gd.T5;
import java.util.Arrays;
import java.util.Collection;
​
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
​
@RunWith(Parameterized.class) //指定运行测试的运行器
public class zhus {
    private String name;
    public zhus (String name) {
        System.out.println("结束测试");
        this.name=name;
    }
    @Parameters
    public static Collection<Object[]> data() {
        System.out.println("@Parameters");
        Object[][] data = new Object[][] { {"小明"}};
        return Arrays.asList(data);
    }
    @Before
    public void Before() {
        System.out.println("@Before");
    }
    @After
    public void After() {
        System.out.println("@After");
    }
    @Test
    public void Test() {
        System.out.println("@Test");
        System.out.println(name);
    }
}
如果对你有帮助点个赞吧~!