单元测试(一)

一、概念

      单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

二、目的

  • 首先保证代码质量;
  • 其次保证代码的可维护;
  • 再此保证代码的可扩展。

三、Springboot的单元测试开发中遇到的问题以及解决方案描述

问题一:访问到权限修饰符为protected的成员变量。

解决方案:单元测试的类,继承AbstractTestNGSpringContextTests

原理:对集成了Spring TestContext Framework与TestNG环境中的ApplicationContext测试支持的基础测试类进行了抽象。当你继承AbstractTestNGSpringContextTests时,就可以访问到下列protected的成员变量:applicationContext:使用它进行显式的bean查找或 者测试整个上下文的状态

问题二:屏蔽环境依赖,线下模拟环境进行单元测试的开发

解决方案:利用mock。

原理:单元测试的过程为设置测试数据,设定预期结果,验证结果。mock就是创建某类型的虚拟对象,进行模拟操作。

Mockito 是一个流行 mock 框架,可以和JUnit结合起来使用。Mockito 允许你创建和配置 mock 对象。使用Mockito可以明显的简化对外部依赖的测试类的开发。

一般使用 Mockito 需要执行下面三步

  • 模拟并替换测试代码中外部依赖。

  • 执行测试代码

  • 验证测试代码是否被正确的执行

使用步骤:

1.pom.xml中添加

<dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.11</version>

            <!--表示开发的时候引入,发布的时候不会加载此包 -->

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.mockito</groupId>

            <artifactId>mockito-all</artifactId>

            <version>1.9.5</version>

            <scope>test</scope>

</dependency>

2.Springboot中Mockito的使用

2.1)通过 @mock 注解创建 mock 对象

2.2)配置某个方法的返回值的时候,Mockito 提供了链式的 API 来实现。

when(…​.).thenReturn(…​.)可以被用来定义当条件满足时函数的返回值。

      如果需要定义多个返回值,可以多次定义。当多次调用函数的时候,Mockito 会根据定义的先后顺序来返回返回值。

      Mocks 还可以根据传入参数的不同来定义不同的返回值。譬如说你的函数可以将anyString 或者 anyInt作为输入参数,然后定义其特定的放回值。

2.3)使用 @InjectMocks 在 Mockito 中进行依赖注入

2.4)Junit单元测试中Assert断言的使用 网址:https://blog.csdn.net/qq_36688143/article/details/86305807

3.springboot中H2的使用

pom.xml中的配置。

          <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${h2database.version}</version>
            <scope>test</scope>
          </dependency>


 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值