Java培训笔记 07-使用Junit进行单体测试

本文深入探讨JUnit单元测试框架的使用方法,包括测试注解、断言方法、代码覆盖率检查,以及Eclipse中EclEmma的应用。同时,介绍了JMockit工具和API在隔离测试中的作用,详解@Mocked和@Action注解的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试方法上面必须使用@Test注解进行修饰

单体测试的目的

  • 确保代码和详细设计一致
  • 确保程序可以正常执行
  • 尽早发现问题
  • 为将来的测试阶段做准备

Junit测试

单体测试用例一般利用assert方法来创建,assert方法建立在Junit框架中并且确定程序代码是否按照需求来编写,一般有以下aeesrt方法:

  • assertTrue(boolean)
  • assertTure(String,boolean)
  • assertEquals(Object,Object)
  • assertNull(Object)
  • fail(String)

setUp方法中,可以很好地练习初始化在测试里用到的所有的变量;tearDown方法可以明确地删除/破坏所有在测试用例中被用到的变量

Eclipse使用EclEmma测试代码覆盖率

这里

Transient关键字

Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输,一般当我们使用缓存cache(内存空间不够有可能会本地存储到硬盘)或远程调用rpc(网络传输)的时候,经常需要让我们的实体类实现Serializable接口,目的就是为了让其可序列化。
而transient关键字的作用,就是让某些被修饰的成员属性变量不被序列化或者说不持久化其值,有利于节省存储空间。

@Autowired 注释

@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。(比如我new了一个person,一个是aa,一个是bb,编译期不知道是哪一个,主函数里运行的时候才知道)@Autowired 默认是按照类去匹配,配合 @Qualifier 指定按照名称去装配 bean。对在哪里和如何完成自动连接提供了更多的细微的控制。

@classrule

junit中的@classrule,可以在所有类方法开始前进行一些初始化调用,比如创建临时文件,

Java测试框架之JMockit

使用JMockit API来mock被依赖的代码,从而进行隔离测试。
JMockit 是用以帮助开发人员编写测试程序的一组工具和API,该项目完全基于 Java 5 SE 的 java.lang.instrument 包开发,内部使用 ASM 库来修改Java的Bytecode。所以他能解决当测试的代码包含了一些静态方法,未实现方法,未实现接口的问题。ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。

@Mocked注释

用于全局变量或方法的参数,标识一个指定的class的实例或被测对象的参数被Mock掉。JMockit根据Expectation方法中的设置来初始化被Mock对象的值。
所有对象(基本类型和Array除外)都可以通过@Mocked标识被Mock掉。
当一个被测对象的参数被Mock的时候,执行测试时,该参数将不再按照原有的代码来实例化,而是将实例化的工作委托给JMockit来完成。
被Mock的对象的除了继承自Object的方法之外的所有方法(包括构造函数、静态函数等)都会被JMockit重写。

Deencapsulation

用于Mock私有方法和私有属性。这里

@Action注解

@Action指定一个类为action,相应配置文件里的…标签,当中能够配置例如以下属性
results:配置返回的结果集属性,相当于struts2中的列表,能够在{}中配置属性
value:配置action的名字,相当于中的name属性
interceptorRefs:配置拦截器
@Action能够定义在类上,也能够定义在方法上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值