首页 > 其他分享 >Junit

Junit

时间:2023-03-05 10:57:11浏览次数:27  
标签:10 Calculator public add 测试 Test Junit

一、什么是Junit?

  Unit Testing单元测试,又称为模块测试,针对陈序进行验证性的测试工作,也就是测试数据的稳定性是否达到程序的预期。

二、黑盒测试与白盒测试是什么?

  Junit属于白盒测试。

  1.黑盒测试

    在测试过程中,我们把程序看作为一个打不开的盒子,黑黑的什么也看不见,内部代码怎么写的也不知道,想程序传入参数(input),去查看程序输出(ouput)。这也是初期常用的测试方法。

    特点:不需要我们中间参与编写任何代码,传入参数值后查看程序是否正常或达到预期值。

    举例:

      创建一个Calculator类,包含两个加减法。

      public class Calculator {

      /** * 加法 */

        public int add(int num1, int num2) {

        return num1 + num2;

        }

      /** * 减法 */

        public int cut(int num1, int num2) {

        return num1 - num2;

        }

      }

      编写测试类:

      public class Test {

        public static void main(String[] args) {

        Calculator calculator = new Calculator();

        //测试加法

        System.out.println(calculator.add(10, 10));//20 正确

        //测试减法

        System.out.println(calculator.cut(10, 10)); //0 正确

        }

      }

    分析:

      这是平时常用的测试方法,也就是黑盒测试。测试时,为了防止数据间的影响,一般会进行一次测试类运行,测试完。add()方法无误后,注释掉,进行.cut()方法测试。

    缺点:

      每次测试都需要注释掉上一步的测试代码,略显麻烦。

  2.白盒测试(Junit)

    如果是白盒测试,那么测试类应该这样:

      public class CalculatorTest {

        @Test

        public void add() {

          Calculator calculator = new Calculator():

          System.out.println(calculator.add(10,10));

          }

        @Test

        public void add() {

          Calculator calculator = new Calculator():

          System.out.println(calculator.add(10,10));

          }

      }

    分析:

      每一个需要测试的方法左边都有一个绿色的小三角,这是用来单元测试运行的。也就是说,我们可以只运行某一个方法去测试。

三、单元测试的编码规范

  • 类名: 定义测试类,类名是由被测试类名Test构成。例如:CalculatorTest
  • 包名: 定义的测试类需要放在xxx.xxx.xxx.test包中。例如:package com.mylifes1110.test;
  • 方法名: 测试方法的方法名有两种定义方式test测试方法测试方法。例如:testAdd和add
  • 返回值: 因为我们的方法只是在类中测试,可以独立运行,所以不需要处理任何返回值,所以这里使用void。例如:public void add();
  • 参数列表: 因为我们的方法是用来测试的,至于参数列表的传入是没有必要的。我们在测试的时候自行传入需要的参数测试即可。所以在此参数列表为。例如:例如:public void add();
  • @Test注解: 测试是需要运行来完成的。如果我们只有一个main方法,显然在结构上还是需要我们去注释掉测试过的。解决此问题这里我们需要在测试方法上方加@Test注解来完成测试,只要是加该注解的方法,可以单独运行此方法来完成测试。
  • @Test注解jar包Junit4、5: @Test注解是需要我们导入jar包才能使用的。jar包有两个分别是:junit-4.13-rc-2hamcrest-core-1.3。这里我使用的是Junit4,单元测试还有Junit5,版本差异我没有做了解。主要是可以完成测试才是硬道理!
  • IDEA快捷导入Junit4、5: 使用IDEA的小伙伴,你们的福音来了。我们可以先创建测试类和方法,然后在测试方法上方加入@Test注解,此时IDEA显示的@Test注解是飘红的,这时候我们使用Alt + Enter组合键来打开导入Junit单元测试列表,然后再选择Junit4或者Junit5确定即可导入成功!这时候再查看注解就没有飘红了!

四、Assert断言

  简单地讲,断言就是对某种假设条件进行检查。

  语法为:

    Assert.assertEquals(预期值, 结果);

  举例:

    我们在上面的add的测试方面里面加入

      Assert.assertEquals( expected: 1, result);

      表示我预期程序结果是 1  ,如果结果相符,则运行后绿色通过,相悖则红色报错。这样的话,可以有效区分程序本身设计错误与测试运行的错误。

  详细方法为:

断言方法描述
assertNull(java.lang.Object object) 检查对象是否为空
assertNotNull(java.lang.Object object) 检查对象是否不为空
assertEquals(long expected, long actual) 检查long类型的值是否相等
assertEquals(double expected, double actual, double delta) 检查指定精度的double值是否相等
assertFalse(boolean condition) 检查条件是否为假
assertTrue(boolean condition) 检查条件是否为真
assertSame(java.lang.Object expected, java.lang.Object actual) 检查两个对象引用是否引用同一对象(即对象是否相等)
assertNotSame(java.lang.Object unexpected, java.lang.Object actual) 检查两个对象引用是否不引用统一对象(即对象不等)

    

 

标签:10,Calculator,public,add,测试,Test,Junit
From: https://www.cnblogs.com/hnzj-haoran212/p/17179990.html

相关文章

  • 整合Junit5
    1、引入依赖<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5......
  • SpringJUnit4ClassRunner+mockito (二)
    pom.xml1<dependency>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-starter-test</artifactId>4<scope>test</scope>......
  • 03_01_JavaWeb||day01_基础加强||day01_Junit测试,反射,注解
    第一部分Junit测试1.1测试分类黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要些代码的。关注程序具体的执行流程。1.2Junit使用:白盒测试步骤:......
  • Junit单元测试基本使用
    在pom.xml中配置依赖:<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><......
  • Junit环境配置和在IDEA中使用Junit学习记录
    Junit环境配置步骤1:检查电脑中Java环境是否配置成功因为JUnit是Java的一个框架,所以最根本的需要是在你的机器里装有JDK。1.1进入cmd控制台界面,输入java/javac/java......
  • 整合jUnit4和jUnit5
    整合jUnit41.引入依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.6.RELEASE</version></......
  • SpringBoot03 - 整合JUnit
    整合JUnit​ SpringBoot技术的定位用于简化开发,再具体点是简化Spring程序的开发。所以在整合任意技术的时候,如果你想直观感触到简化的效果,你必须先知道使用非SpringBoot技......
  • springboot整合junit
    packagecom.itheima1;importcom.itheima.Springboot07TestApplication;importcom.itheima.service.BookService;importorg.junit.jupiter.api.Test;importorg.s......
  • JUnit 简史及 JUnit3 设计思路
    JUnitIntroductionJUnit是一套JavaUnitTest单元测试框架,是TDD(test-drivendevelopment)的有力支持者。UnitTestTDD经典的工作流:早上来到工位喝一杯咖啡;Down......
  • java测试框架junit5
    1.常用注解执行顺序:BeforeAllBeforEach>测试用例>AfterEachBeforEach>测试用例>AfterEachBeAfterAll代码演示publicclassDemoTest{@BeforeAl......