AspectJ在Java单元测试中的应用研究

来源 :重庆大学 | 被引量 : 0次 | 上传用户:suixin1102
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
单元测试是集成测试与系统测试的基础,是测试驱动开发与软件重构的基石。随着测试驱动开发方法的流行,单元测试愈发重要。本文主要研究Java程序的单元测试。通过对单元测试理论及工具的研究,发现当前的Java单元测试还存在一些问题,这些问题主要包括:当前测试框架不能自动地选择测试用例,不能自动地添加运行测试用例。当需要频繁、有选择性地运行大量测试时,手动方式十分繁琐;测试中使用的模拟框架具有不能模拟final类等局限性,并且实现模拟功能的代码与测试的代码混合在测试方法中,不仅影响测试方法的可读性,而且不利于模拟对象的复用;当前测试框架没有为测试方法的复用提供有效的支持;针对以上问题,将单元测试与面向方面编程结合,研究AspectJ(一种面向方面框架)在Java单元测试中的应用,取得成果主要包括:1)扫描整个项目自动添加测试用例到测试套件,框架自动运行套件中的测试用例。在添加过程中利用AspectJ的横切功能横切添加用例的方法,使得只添加在切点中描述的测试用例,实现测试用例自动地选择、自动地添加运行。2)利用AspectJ切点捕获被测方法对外部的依赖,在切面中改写依赖方法,隔离依赖,并设计了隔离依赖的切面模型。在切面中设置预期的方法调用,被测方法运行时用切点捕获实际的方法调用,在切面中验证两者是否一致,实现交互测试,并设计了实现交互测试的切面模型。3)设计了两种复用测试方法的模式:参数化测试与接口测试方法复用。利用AspectJ切点捕获测试方法中被测方法的调用,在切面中用多组测试数据循环调用被测方法,记录每组的运行结果。捕获测试方法中断言方法的调用,复用断言方法断言每组数据的运行结果,实现参数化测试。利用AspectJ的静态横切功能,让各实现类的测试类复用切面中实现的接口中方法的测试方法,实现接口测试方法复用。为了方便设计的方法在实际单元测试中的使用,设计并实现了一个基于JUnit的单元测试框架Test WAJ(Test with AspectJ)。最后,运用Test WAJ进行单元测试,验证了本文提出的解决方法是可行的。本文实现测试用例的自动选择,自动添加运行,提高了Java单元测试自动化水平。设计的两种复用测试方法的模式,增强了测试方法的复用性,减少了测试成本。用AspectJ实现的模拟框架,比传统模拟框架功能更强,复用性、灵活性更高。
其他文献
眼部区域瞳孔定位技术,一直是计算机视觉和模式识别领域重要的研究课题之一,其在视野检测、视线追踪、虚拟现实、生物特征识别、智能交通中有着广泛的应用。随着科技的不断进
随着网络技术的飞速发展,数字媒体的共享传递变得十分便捷,随之而来的版权保护等安全问题日益凸显。二维CAD工程图形作为计算机辅助设计的主要载体,在工业设计领域有着广泛应
随着计算机科学技术与互联网的不断发展,在我们的工作和生活中web已变得必不可少。web上信息资源呈几何级数量增长,web已经成为一个巨大的信息资源库,要想准确有效地获取一条
自然世界中的物体在空间上一般都具有三个维度,如何快速准确地从图像采集设备获得的二维平面图像中恢复物体在空间中的运动参数并进行运动分析和理解一直以来都是计算机视觉
基于多协议标签交换(MPLS)技术的VPN可以使不同业务运行于不同的虚拟专用网,从而保证不同业务之间的有效隔离和不同数据的服务质量,提供数据、语音和视频相融合的能力。但是M
近年来,随着数据挖掘技术的不断发展,其应用领域也在不断扩大,比较典型的数据挖掘算法在流程工业领域便得到了大力的推广。这主要有两方面原因:一是伴随着以计算机为核心的各
近年来,随着多核技术的发展,处理器性能得到了巨大提升。多核系统已经广泛渗入到移动设备、嵌入式设备和PC等领域。然而,很多公司普遍缺乏一种软件技术来充分利用多核平台的
随着互联网存储技术的快速发展,P2P分布式存储系统因其高可扩展性和稳定性而逐渐成为研究重点。虽然现在市场上已有的P2P系统很多,但是还存在一些问题,主要表现在以下几个方
在各式各样的数据库应用中,隐私保护越来越受到人们的关注,因为在数据库的信息组织与管理中出现了大量隐私泄露现象。对个人而言,由于工作和生活的关系,常常需要向医院、银行
电力变压器是电力系统中的枢纽设备,它的性能直接影响到电力系统运行的安全,及时准确掌握变压器的运行状态、及早发现变压器的潜伏性故障,对变压器状态检修具有重要的现实意义。本文基于支持向量机理论从变压器的状态评估、故障诊断两方面进行了深入探讨。针对变压器状态评估,在分析变压器状态参量的基础上,结合现有研究成果和专家经验的指导,从状态评估的需要和实际可操作性出发,选择适当的参量评估变压器的本体状态,然后基