Junit单元测试

简介: Junit单元测试


目录

1.测试分类:

(1)黑盒测试:

(2)白盒测试:

2.Junit的使用:

(1)@Test的使用

1.定义一个类

 2.再定义一个测试类

3.断言操作

(2)@Before和@After

1.@Befor

2.@After

3.代码测试

4.测试结果

3.Junit总结


1.测试分类:

(1)黑盒测试:

不需要写代码,给输入值,看程序是否输出期望的值

大部分都在使用黑盒测试,就是根据你写的代码进行测试

(2)白盒测试:

需要写代码,关注程序的具体的执行流程

2.Junit的使用:

Junit是白盒测试

(1)@Test的使用

1.定义一个类

先在类中定义方法

package cn.junit;
/*
* 计算器类
* */
public class Calcuator {
/*
* 加法
*/
   public int add(int a,int b)
   {
        return a+b;
   }
   /*
   减法
    */
   public int sub(int a,int b)
   {
       return a-b;
   }
}

 2.再定义一个测试类

package cn.test;
import cn.junit.Calcuator;
import org.junit.Test;
public class CalculatorTest {
    /*
    测试add方法
     */
        @Test
    public void testAdd()
    {
        //创建计算器对象
        Calcuator c=new Calcuator();
        //调用方法
        int ad = c.add(1, 2);
        System.out.println(ad);
    }
}

刚加上@Test   因为没有导包是会爆红的

点一下旁边小灯泡

就会自动导包

3.断言操作

我们测试过程中往往是不要输出的,而会进行断言操作

Assert.assertEquals(断言值,输出值);

package cn.test;
import cn.junit.Calcuator;
import org.junit.Assert;
import org.junit.Test;
public class CalculatorTest {
    /*
    测试add方法
     */
        @Test
    public void testAdd()
    {
        //创建计算器对象
        Calcuator c=new Calcuator();
        //调用方法
        int ad = c.add(1, 2);
        Assert.assertEquals(3,ad);
        // System.out.println(ad);
    }
}

如果两值不同,则会爆红出错

断言失败样例:

断言成功样例:

(2)@Before和@After

1.@Befor

@Before的存在是为了让代码简洁,去重复化操作

@Before在每个@Test注解前都要先执行的代码进行区块化,进行@Before注解

注解后会在@Test前先执行

2.@After

@After的存在与@Before是相同的,都是为了使代码简洁,去重复操作

@After是在每个@Test注解后都会执行的代码进行区块化,进行@After注解

注解后会在@Test注解后自动执行

3.代码测试

package cn.test;
import cn.junit.Calcuator;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
    @Before
    public void testinit()
    {
        System.out.println("init...");
    }
    @After
    public void close()
    {
        System.out.println("close.....");
    }
    /*
      测试add方法
       */
        @Test
    public void testAdd()
    {
        //创建计算器对象
        Calcuator c=new Calcuator();
        //调用方法
        int ad = c.add(1, 2);
        //Assert.assertEquals(3,ad);
        System.out.println("testadd进行时");
        //  System.out.println(ad);
    }
    /*
    * 测试sub方法
    * */
    @Test
    public void testsub()
    {
        Calcuator c=new Calcuator();
        int sub = c.sub(1, 2);
        System.out.println("testsub进行时");
        //System.out.println(sub);
    }
}

4.测试结果

(1)测试add方法

(2)测试sub方法

3.Junit总结

(1).定义测试方法时返回值要void类型

(2).参数列表为空参

(3).判定结果   如果出现红色则说明测试失败

                    如果出现绿色说明测试成功

(4).一般我们会使用断言操作来处理结果

          Assert.assertEquals(断言值,输出值);

(5).@Before修饰方法会在测试方法之前执行

(6).@After修饰方法会在测试方法执行之后执行(无论测试是否成功都会执行);

文章知识点与官方知识档案匹配,可进一步学习相关知识


相关文章
|
1月前
|
IDE Java 测试技术
使用JUnit进行单元测试:提高Java Web应用的稳定性和可靠性
【4月更文挑战第3天】本文介绍了JUnit,一个广泛使用的Java单元测试框架,由Kent Beck和Erich Gamma创建。JUnit核心特性包括注解、断言、测试套件、测试监听器和异常测试。在Java Web应用中,单元测试主要针对模型层。使用JUnit测试涉及设置环境、编写测试类、标记测试方法及运行和分析结果。单元测试能提早发现问题、简化调试、保证代码质量、促进重构并作为实时文档。掌握JUnit对提升软件质量和效率至关重要。
|
2月前
|
IDE Java 测试技术
Junit 单元测试
JUnit是Java常用的单元测试框架,简化了测试用例的编写和执行。其特点包括简单注解、自动化测试、可扩展性、灵活性及与IDE的集成。使用方法涉及创建测试类、利用注解如@Test、@BeforeEach等管理测试生命周期,以及使用各种断言方法验证结果。此外,JUnit支持参数化测试以覆盖更多输入组合,并能与Maven、Gradle等构建工具集成,提升测试效率和项目管理。
42 1
|
2月前
|
Java 测试技术 Spring
Spring Boot 基于 JUnit 5 实现单元测试
Spring Boot 基于 JUnit 5 实现单元测试
28 0
|
1月前
|
Java 测试技术 程序员
junit单元测试
junit单元测试
|
2天前
|
测试技术
测试基础 Junit单元测试框架
测试基础 Junit单元测试框架
10 2
测试基础 Junit单元测试框架
|
25天前
|
Java 测试技术 API
使用JUnit进行Java单元测试
【4月更文挑战第16天】本文介绍了如何使用JUnit进行Java单元测试。JUnit是一个由Erich Gamma和Kent Beck创建的开源Java测试框架,用于简化测试用例编写并自动执行测试。文章涵盖了JUnit的基本结构,如使用`@Test`注解标记测试方法,以及断言方法如`assertEquals`和`assertTrue`来验证测试结果。此外,还讨论了测试套件的创建,用于组合运行多个测试类,并介绍了模拟对象的概念,允许开发者使用Mockito等库来模拟依赖对象。学习和应用JUnit能提升代码质量并确保软件稳定性。
|
1月前
|
Java 测试技术 Maven
Spring整合JUnit实现单元测试
本文介绍了如何在Java开发中使用Spring与JUnit进行单元测试。首先,设置JUnit和Spring环境,创建待测试的业务逻辑类,如MyService。接着,编写JUnit测试类MyServiceTest,使用`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`注解,注入并测试MyService的方法。此外,借助Mockito模拟依赖对象,以及使用Spring TestContext框架进行集成测试,确保测试的隔离性和环境的稳定性。通过这些方法,可以提升代码质量和测试效率。
28 1
|
4月前
|
Java 测试技术
JUnit 4 单元测试
单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问题层出不穷。 线上出现的不少问题其实在有单元测试的情况下就可以及时发现和处理,因此培养自己在日常开发中写单元测试的能力是很有必要的。无论是对自己的编码能力的提高,还是项目质量的提升,都是大有好处,本文将介绍 Java 单元测试框架 JUnit 4 的基础认识和使用来编写单元测试,希望同样对你有所帮助。
|
7月前
|
Java 测试技术 API
Junit5单元测试框架详解
前面我们学习了Selenium自动化测试框架,但是有的时候测试用例会很多,我们需要一个工具来管理这些测试用例,而Junit就是一个很好的管理工具,简单点来说,Junit就是一个针对Java的单元测试框架;
107 0
|
7月前
|
Java 测试技术 程序员