生命在于生生不止的学习。当你一片茫然的时候,请不要急躁,静下心来考虑,总会解决的。
-------------题外话
编写单元测试用例是开发人员必不可少的一项技能,本篇文章主要介绍两种重要的单元测试框架技术。
Junit和TestNG.
单元测试框架的要求:每一个单元测试独立于其他单元测试,产生错误被记录,用户轻松指定执行那些单元测试。
Junit:
主要讲解最新的Junit4框架,采用了java 5的Annotation技术
Junit4生命周期:类级初始化资源处理、方法级初始化资源处理、执行测试用例中方法、方法级销毁资源处理、类级销毁资源处理。
如果一个测试用例中编写多个初始化处理方法,运行时先执行最后面的初始化方法,然后依次往前执行,销毁资源处理方法,依照顺序往后执行。
@Test Junit中这个注解对于方法签名没有限制,标注一个测试方法,会生成一个测试用例运行
@BeforeClass 在一个Test类的所有测试方法执行前执行一次 public static
@AfterClass在一个Test类的所有测试方法执行后执行一次 一定会执行
@Before 在每个测试方法之前都会运行一次 public 非static
@After 在每个测试方法之后都会运行一次 一定会执行
异常测试 @Test传入expected参数值,如果没有抛出异常或抛出期待异常,即失败
超时测试 @Test,为timeout参数设置时间值。超过指定的毫秒数,即测试失败
参数化测试
为了程序的健壮性,需要模拟不同参数对方法进行测试,不需要为每个类型参数创建一个测试方法。
1.为参数化测试类用@RunWith注释指定特殊的运行器:Parameterized.class
2.在测试类中声明几个变量,分别用于存储期望值和测试用的数据,并创建一个带参的构造函数
3.创建一个静态测试数据供给方法,其返回类型为Collection,并用@Parameter注释以修饰。
4.编写测试方法@Test,不带参数,不能有参数
测试运行器
Junit中所有测试方法都由测试运行器负责执行。默认测试运行期BlockJUnit4ClassRunner
自己的运行器要继承org.junit.runner.Runner
参数化测试 @RunWith(Parameterized.class)
打包测试@RunWith(Suite.class) @SuiteClass({,,})
Junit4断言
assertArrayEquals(Object[] obj1,Object[] obj2);
assertThat断言 结合Hamcrest
assertThat(T actual,Matcher matcher);
assertThat(String reason,T actual,Matcher matcher)
Matchers匹配方法静态类
例子:
assertThat(tom.getCredits(),greaterThan(50));
相关推荐
Kali Linux渗透测试技术详解本书由浅入深地介绍了Kali Linux的各种渗透测试技术。书中选取了最核心和最基础的内容进行讲解,让读者能够掌握渗透测试的流程,而不会被高难度的内容所淹没。本书涉及面广,从基本的知识...
《测试技术》是信息技术领域中一个重要的学习主题,它涵盖了软件开发过程中的质量保证、缺陷检测和性能评估等多个方面。贾民平教授的教材在测试技术领域有着广泛的影响力,其配套的习题集则为学生提供了深入理解和...
《电机现代测试技术》是宁德职业技术学院课程中的一部分,由武建文和李德成两位教授编著,许从增制作成课件。本部分为该课程的第一篇,主要涵盖了电机测试技术的基础理论和实践应用。电机作为电力系统的核心设备,其...
### 水声计量测试技术知识点解析 #### 一、水声计量测试技术概述 **水声计量测试技术**是研究水下声学信号的产生、传播、接收及其测量的一门学科。它广泛应用于海洋勘探、军事侦察、水下通信等领域。随着海洋经济...
"机械工程测试技术基础知识点总结" 测试技术是机械工程中不可或缺的一部分,是人们借助于一定的装置,获取被测对象有相关信息的过程。测试工作的目的是为了最大限度地不失真获取关于被测对象的有用信息。 1. 测试...
【FPGA软件测试技术研究】 FPGA(Field-Programmable Gate Array)是一种专用集成电路,以其高度可配置性与灵活性在航空航天、通信和控制等领域广泛应用。随着FPGA系统的重要性和复杂度不断提升,确保其可靠性变得...
### Web测试技术大全:全方位解析Web测试的关键领域 #### Web技术概览 Web测试是确保Web应用程序质量和用户体验的重要环节,涵盖了从功能验证到性能、安全性的全面评估。本篇文章将深度解析Web测试技术,包括自动...
在航天领域,人工智能的应用已经成为推动发展的重要力量,特别是在卫星测试系统中,人工智能技术结合自动化测试技术,为测试工作带来了革命性的变革。 人工智能在卫星测试中的应用主要表现在以下几个方面: 首先,...
### 软件测试技术:测试基本概念与单元测试 #### 一、软件测试的背景与意义 **软件测试的背景:** 随着信息技术的发展,软件系统变得越来越庞大且复杂,软件质量的问题日益突出。一方面,软件缺陷的存在几乎是不可...
测试技术是信息技术领域中至关重要的一环,特别是在软件开发与维护过程中。中国矿业大学提供的这个测试技术课件PPT,无疑是对这一主题深入学习的重要参考资料。本文将基于课件标题、描述以及标签,深入探讨测试技术...
测试技术是信息技术领域中至关重要的一环,它确保了软件产品的质量和可靠性。在软件开发的整个生命周期中,测试占据着举足轻重的地位。本课件“测试技术”旨在深入探讨和理解这一领域的核心概念和实践方法。 测试...
测试技术是指在软件开发过程中,为了确保软件产品的质量而采取的各种测试方法和手段。根据给定的文件内容,这里将详细分析和总结软件测试技术中的几个关键知识点,包括测试方法、测试方案、测试计划、自动化测试、...
计算机软件测试技术是保证软件产品质量的重要环节。在软件开发过程中,测试活动占据了相当大一部分的工作量与成本,有时甚至超过软件开发总成本和工作量的一半。虽然测试的重要性不言而喻,但测试技术的发展却远未...
测试技术是IT行业中一个至关重要的领域,主要关注的是软件产品的质量保证和缺陷预防。这份名为“测试技术答案(部分) 贾民平”的资源,由专家贾民平编写,涵盖了测试技术的部分关键内容,包括第1、3、5、7章的解答...
《自考软件测试技术1007028试题》是一个针对自学考试“软件测试技术”科目的宝贵学习资源,包含历年真题及答案。软件测试技术是IT领域中的一个重要分支,它涉及到软件质量保障、缺陷预防和问题定位等多个方面。在...
测试技术是IT行业中一个至关重要的领域,它涵盖了软件开发全生命周期的质量保证过程。这份"测试技术课件"显然是为了帮助那些希望通过自学提升测试技能的人准备的。以下将详细阐述测试技术的一些关键知识点: 1. **...
"软件测试技术与实践" 软件测试技术与实践是软件开发过程中的一个关键步骤,它对软件的质量和可靠性产生着直接的影响。本文主要介绍了软件测试的基本概念、软件测试的分类、软件测试的原则、软件测试的技术和方法、...