IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> mock、junit、assertJ单元测试 -> 正文阅读

[开发测试]mock、junit、assertJ单元测试

目录

1. 什么是mock?

2.?怎么使用mock?

3. 使用Junit提供的方法做初始化和收尾动作

4. 使用assertJ提供的方法做断言测试


1. 什么是mock?

? ? ? ? mock是一个单元测试工具包,可以利用mock让难以初始化的对象或实例变的可以初始化。举个栗子,例如使用@Mock注解标记一个类型,该类型相当于是一个bean被容器给装配进去,后续用该实例可以调用对应的方法也不会报NPE异常。

   @Mock
    private Channel channel;

2.? 怎么使用mock?

添加mock依赖、Junit依赖和assertJ依赖。

   <!-- mock 测试-->
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.23.0</version>
        </dependency>
   <!-- assertj-->
   <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>2.6.0</version>
        </dependency>
  <!-- junit-->
<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

在单元测试类上添加@RunWith(MockitoJUnitRunner.class)注解, 声明该类可以使用mock。

@RunWith(MockitoJUnitRunner.class)
public class ProducerManagerTest {

}

????????例如ChannelHandlerContext接口,再不用实现类的情况下,可以使用mock(Class)方法来模拟创建一个ChannelHandlerContext的对象。

   @Test
    public void testProcessRequest_registerBroker() {
        // 使用mock 加载
        ChannelHandlerContext ctx = mock(ChannelHandlerContext.class);
        System.out.println(ctx);

    }

打印结果:

3. 使用Junit提供的方法做初始化和收尾动作

@before注解,如果一个方法被@before标记,则每个被@Test标记的方法执行前都需要执行该方法。

@after 注解, 如果一个方法被@after标记,则每个被@Test标记的方法执行后都需要执行该方法。

@beforeClass, 该类里所有的方法执行前执行,只会执行一次,被标注的方法必须是static 方法。

@afterClass, 被@afterClass注解标记的方法,在所有的@Test方法标记的方法后执行,但只执行一次。

4.使用assertJ提供的方法做断言测试

assertThat(), 用来判断变量是否等于某个值,如果是通过,否就不通过。

 assertThat(response.getCode()).isEqualTo(ResponseCode.SUCCESS);

assertThat() 可以配合如下方法来使用。

isEqualTo() : 比较值。

isNull(): 判断变量是否为Null。

contains(): 判断集合包含哪些元素。

条件判断

when: 用来模拟使用mock()方法创建的对象,当调用某个方法后,指定返回结果,如下当调用mock.isOk() 那么返回true。

when(mock.isOk()).thenReturn(true);

when(mock.isOk()).thenThrow(exception);

以上的条件不满足那么就会报错,满足就通过!?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 20:02:21  更:2021-07-04 20:02:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 18:52:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码