单元测试

来源:互联网 发布:js秒表倒计时 编辑:程序博客网 时间:2024/05/22 13:29

单元测试是指在计算机编程中,针对程序模块(软件设计的最小单位)来进行正确性校验的测试工作。
特点如下
程序单元是应用的最小可测试部件,通常采用基于类或者类的方法进行测试
程序单元和其他单元是互相独立的
单元测试的执行速度很快
单元测试发现的问题,相对容易定位
单元测试通常由开发人员来完成

通过了解代码的实现逻辑进行测试,通常称之为白盒测试

JUnit单元测试框架是基于Java语言的主流单元测试框架
使用方法
1安装JUnit4
2 创建JUnit4的测试代码
3 创建JUnit4 Test Suite(JUnit Test Suite主要是为了批量执行不同测试类中的测试用例)
通过Eclipse的JUnit Test Case向导,可自动生成测试框架方法,每个方法上方均含有一个@字符的关键字描述,此关键字即为JUnit4中新增的注解功能,每个注解关键字都有其自身含义。
@BeforeClass 表示使用此注解的方法在测试类被调用之前执行,在一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次
@AfterClass表示使用此注解的方法在测试类被调用结束退出之前执行,在一个测试类中只能声明此注解一次,并且此注解对应的方法只能被执行一次
@Before 表示使用此注解的方法在每个@Test调用之前被执行,即一个类中有多少个@Test注解方法,那么@Before注解方法会被调用多少次
@After表示使用此注解的方法在每个@Test调用结束之后被执行,即一个类中有多少个@Test注解方法,那么@After注解方法会被调用多少次
@Test表示使用此注解的方法为一个单元测试用例,在一个测试类中可以多次声明此注解,每个注解为@Test的方法只被执行一次
@Ignore表示使用此注解方法为暂时不执行的测试用例方法,会被JUnit4忽略执行。

TestNG 是一种单元测试框架
TestNG 是一种开源自动化测试框架
让程序员通过注解,分组,序列和参数化等多种方式组织和执行自动化测试脚本
优点:
1 漂亮的HTML格式测试报告
2 支持并发测试
3 参数化测试更简单
4 支持输出日志
5 支持更多功能的注解

编写 TestNG测试用例的步骤
1 使用编译器(Eclipse)生成TestNG的测试程序框架。
2 在生成的程序框架中编写测试代码逻辑
3 根据测试代码逻辑,插入TestNG注解标签
4 配置Testng.xml文件,设定测试类,测试方法,测试分组的执行信息
在testing.xml中的配置层级结构如下

   <suite>   <test>   <classes>   <method>   </method>   </classes>   </test>   </suite>

5 执行TestNG的测试程序

TestNG的常用注解
@BeforeSuite 表示此注解的方法会在当前测试集合(Suite)中的任一测试用例开始运行之前执行
@AfterSuite 表示此注解的方法会在当前测试集合(Suite)中的所有测试程序运行结束之后执行
@BeforeTest 表示此注解的方法会在Test中任一测试用例开始运行前执行
@AfterTest 表示此注解的方法会在Test中所有测试用例运行结束后执行
@BeforeGroups 表示此注解的方法会在分组测试用例的任一测试用例开始运行前执行
@AfterGroups 表示此注解的方法会在分组测试用例的所有测试用例运行结束后执行
@BeforeClass 表示此注解的方法会在当前测试类的任一测试用例开始运行前执行
@AfterClass 表示此注解的方法会在当前测试类的所有测试用例运行结束后执行
@BeforeMethod 表示此注解的方法会在每个测试方法开始运行前执行
@AfterMethod 表示此注解的方法会在每个测试方法运行结束后执行
@Test 表示此注解的方法会被认为是一个测试方法,即一个测试用例。
TestNG的常见测试用例组织结构如下
TestSuite由一个或者多个Test组成
Test由一个或者多个测试Class组成
一个测试Class由一个或者多个测试方法组成
批量运行多个测试用例—运行测试集合(Test Suite)
TestNG的测试用例可以是相互独立的,也可以按照特定的顺序来执行
通过TestNG.xml的配置,可实现运行多个测试用例的不同组合。
测试用例的分组
TestNG使用group关键字进行分组,用来执行多个Test的测试用例
依赖测试
TestNG支持依赖测试,使用dependsOnMethods参数来实现
特定顺序执行测试用例
使用参数priority可实现按照特定顺序执行
跳过某个测试方法
使用参数enabled=false来跳过某测试方法
测试报告中的自定义日志
TestNG提供了日志功能,在测试过程中可通过自定义的方式记录测试脚本的运行信息。日志信息一般使用两种没事进行记录,即高层级和低层级。低层级模式日志会记录所有的测试步骤信息,高层级模式日志只会记录测试脚本中的主要事件信息。
断言
TestNG允许在测试执行过程中对测试程序变量的中间状态进行断言判断,从而辅助判断测试用例的执行是成功还是失败。
TestNG中常用的断言方法如下。
assertTrue:判断是否为true
assertFalse :判断是否为false
assertSame:判断引用地址是否相同
assertNotSame:判断引用地址是否不相同
assertNull:判断是否为null
assertNotNull:判断是否不为null
assertEquals:判断是否相等,Object类型的对象需要实现hashCode及equals方法。
assertNotEquals:判断是否不想等
assertEqualsNoOrder:判断忽略顺序是否相等。

原创粉丝点击