首页 > 编程语言 >java里junit 单元测试、注释(入门)

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

时间:2023-11-13 17:27:17浏览次数:33  
标签:java 单元测试 org Test 注解 junit 测试方法

什么是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);
    }
}
如果对你有帮助点个赞吧~!
 

标签:java,单元测试,org,Test,注解,junit,测试方法
From: https://www.cnblogs.com/cq971/p/17829584.html

相关文章

  • java中一些空判断|ObjectUtils
    为什么用ObjectUtils?在java中判断对象是否为null,常常不止判断对象是否为null,如果对象是集合,数组,字符串等等特殊类型,还需要检查是否为空(元素个数为0或者长度为0)ObjectUtils.isEmpty可以简化下面这些问题(当然,你使用的是spring)对象为null。对象是数组,且长度为0。对象是集合(Coll......
  • java基础学习:强制类型转换
    1.2.   代码:packagecom.itheima.type;publicclassType3{publicstaticvoidmain(String[]args){//掌握强制类型转换inta=20;//byteb=a;报错,直接将类型范围大的变量转换为类型范围小的byteb=(byte)a;//alt+e......
  • 中国银行模拟器app,用java设计框架,图片网上找的,提供代码,仅供娱乐
    回执单生成器的Java程序需要涉及到一些基本的Java编程技能,包括创建类、处理用户输入和格式化输出。下面是一个简单的示例代码,用于生成一个简易的回执单。这个程序将接收用户的输入,然后生成一个格式化的回执单。请注意,这个示例是基础的,并没有实现完整的错误处理或复杂的用户界面。......
  • 秦疆的Java课程笔记:27 基础 基本运算符
    Java语言支持的运算符:算数运算符:基础四则运算:+加法,-减法,*乘法,/除法%取余,或称“模运算”++自增,--自减赋值运算符:=关系运算符:>大于,<小于,>=大于等于,<=小于等于==等于,!=不等于instanceof对象运算符,用来判断一个对象是否属于某个指定的类或其子类的实例,如果是,返回true,否则......
  • java异常处理机制(三)之常见的异常
    1.算术异常算术异常(ArithmeticException)算术异常:被除数为0是就会产生异常 运行结果: 2.数组越界异常数组越界(ArrayIndexOutOfBoundsException)数组越界异常:当数组长度没有用户使用数组的长度长时就会产生异常运行结果: 3.数据为空异常空指针(NullPointerExce......
  • java基础:表达式的自动类型转换
    1.表达式的自动类型转换:(1)在表达式中,小范围的变量,会自动转换为表达式中较大范围的类型,再参与运算代码:packagecom.itheima.type;publicclassType1{publicstaticvoidmain(String[]args){bytea=10;intb=20;longc=30;lon......
  • JavaSE day06【排序查找算法,Map集合,集合的嵌套,斗地主案例】测评题
    选择题题目1(多选):下列关于TreeSet集合排序的原理正确的是()选项:​ A.排序方法如果返回的是小于0,代表的是当前元素较小,需要存放在左边​ B.排序方法如果返回的是大于0,代表的是当前元素较大,需要存放在右边​ C.排序此方法如果返回的是0,代表的是当前元......
  • java(集合)练习
    需求:用集合记录三个人,并遍历循环。文件:Student.java中importjava.util.ArrayList;publicclassStudent{publicstaticvoidmain(String[]args){ArrayList<Stu>list=newArrayList<>();Stus=newStu("ayue",20);Stus1=newStu(......
  • 使用Java实现NIO
    以下是一个使用JavaNIO实现Reactor模型的简单示例代码,并附有详细的注释: importjava.io.IOException;importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;importjava.nio.channels.SelectionKey;importjava.nio.channels.Selector;importjava.nio.ch......
  • 秦疆的Java课程笔记:26 基础 变量 常量 作用域
    变量就是可以变化的量。Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括:变量名,变量类型,作用域。注意事项:每个变量都有类型,类型可以是基本类型,也可以是引用类型。变量名必须是合法的标识符。变量声明是一条完整的语句,因此每一......