当前位置:网站首页 > 单元测试 > 正文

单元测试基本步骤包括(单元测试的步骤)



  1. 初始化——准备一些测试前提条件。例如新建需要测试的类的实例
  2. 调用被测试的方法
  3. 验证结果——测试结果是否与预期一致
  4. 释放资源或删除文件(optional)

单元测试的测试重点是测试类的 方法,对于其中的 方法的具体实现不关心。

  1. 对于直接返回结果方法:可以用 测试框架的 语句
  2. 对于 类型的方法:需要利用 的测试框架,例如

TDD(Test Drived Development)
在项目初期采用TDD开发,在方法实现前,先写对应的单元测试代码,需要注意方法的Input 和 Output,不去想具体实现细节。也可以考虑方法的一些异常,各种情况的预期结果。这样会对方法的边界以及架构有更清晰的认识。

JUnit4 框架是Java中最基础的测试框架。

 
  

更多验证结果的用法,参看JUnit4 官方文档:Assertions

验证Exception需要在 注解上加上 参数,表明期望出现的异常。如果测试代码中没有抛出异常则会报错。

不过这种验证异常的方法还是有所限制的:不能验证异常中的 message,也无法验证出现异常中其他属性的值,不过 JUnit 4 提供了另外一种方式可以验证异常,可以解决这些问题。

 
  

例如在 中的两个方法 和 都需要有相同的初始化工作—— 创建 对象。而 和 可以很好地将相同的初始化和收尾工作抽象出来。

 
  

Output:

 
  

我们可以看到, 总共运行了两次,并且 并没有变,说明两次 是并行的。


其实在例子中 和 方法不需要在每个测试方法之前都运行一次, 标记的方法会在该类的测试方法运行前运行一遍,只会执行一次,然后在所有测试方法运行完后会运行一次 标记的方法。
不过 和 注解,标记的方法应该为静态方法。




 
  

Output:

 
  

忽略某些测试方法

有时因为一些原因,例如正式代码还没有实现,想让 JUnit 暂时不允许某些测试方法,这时就可以使用 注解,例如:

 
  

fail 方法

有时候可能需要故意让测试方法运行失败,例如在 catch 到某些异常时,这时可以使用fail方法:

 
  
 
  
 
  

Test Class:

 
  

Output:

 
  

Kotlin 语言还提供了一个 库,它定义了一些全局函数,可以在编写测试代码不用导入 ,还可以使用高阶函数作为验证语句的参数。
库提供一些全局函数,如 、 ,更多详细内容请看 Package kotlin.test。

 
  

在实际开发中,软件中是充满依赖关系的,我们会基于Dao(数据访问类)写service类,而又基于service类写操作类。

在传统的JUnit单元测试中,我们没有消除对对象的依赖
如存在A对象方法依赖B对象方法,在测试A对象的时候,我们需要构造出B对象,这样子增加了测试的难度,或者使得我们对某些类的测试无法实现。这与单元测试的思路相违背。

而Mock这种测试可以让你无视代码的依赖关系去测试代码的有效性。
核心思想就是如果代码按设计正常工作,并且依赖关系也正常,那么他们应该会同时工作正常。

Junit 4 测试框架可以验证有直接返回值的方法,Mocking 框架可以对 方法做测试
方法的输出结果其实是调用了另外一个方法,所以需要验证该方法是否有被调用,调用时参数是否正确。Mocking 框架可以验证方法的调用.
目前流行的 Mocking 框架有 Mockito、JMockit、EasyMock、PowerMock 等。
选择Mockito 框架的原因是
(1)Mockito 是 Java 中最流行的 mocking 框架;
(2)Google 的 Google Sample 下的开源库中使用也是 Mockito 框架。下面介绍 Mockito 框架一些概念和用法,以及 Kotlin 中 mockito-kotlin 库的使用。













首先,需要再 中添加依赖:

 
  

然后Mockito框架的示例如下:

 
  
 
  

Mockito 还提供了 等注解来简化创建 mock 对象的工作

 
  

除了显式地调用 外,还可以使用 或者 。使用方式如下:

 
  
 
  

Stub就是把需要测试的数据塞进对象中,使用基本为:

 
  

使用 时,我们只关注于方法调用和返回结果

到此这篇单元测试基本步骤包括(单元测试的步骤)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
  

                            

版权声明


相关文章:

  • 单元测试规范有哪些(单元测试标准规范)2025-11-06 23:00:10
  • 单元测试方案小学数学五年级(单元测评卷数学五年级)2025-11-06 23:00:10
  • 单元测试依据是什么意思(单元测试包含什么测试)2025-11-06 23:00:10
  • 单元测试项目(单元测试项目有哪些)2025-11-06 23:00:10
  • 单元测试 规范(单元测试规范可以放在知识库什么目录下)2025-11-06 23:00:10
  • 单元测试范围包括哪项(单元测试的范围)2025-11-06 23:00:10
  • 单元测试方案小学数学五年级(五年级数学单元测试分析怎么写)2025-11-06 23:00:10
  • 单元测试规范要求是什么(单元测试规范要求是什么意思)2025-11-06 23:00:10
  • 单元测试 规范(单元测试 规范有哪些)2025-11-06 23:00:10
  • 单元测试有那些步骤?各个步骤有那些实施内容?(单元测试有那些步骤?各个步骤有那些实施内容)2025-11-06 23:00:10
  • 全屏图片