Java单元测试框架-1-TestNg初识
目录
1.1xUnit整体作用
xUnit是各种代码驱动测试框架的统称,这些框架可以测试软件的不同内容。
主要优点是提供了一个自动化测试的解决方案,不需要多次编写重复的测试代码,也不必记录测试结果
xUnit用于测试的四要素:
- 1:测试目标(对象)
- 2:测试集
- 3:测试执行(过程)
- 4:断言
1.3TestNg测试框架介绍
TestNG是java中的一个单元测试框架,类似Junit,是一种注解式的编程方式,支持并行运行,数据驱动等,即可以用来做单元测试,也可以用来做集成测试。
TestNg官网文档:TestNg官网 TestNg官网文档:https://testng.org/doc/documentation-main.html
1.4Eclipse安装TestNG
这里我的Eclispe是4.9.0版本,可以直接从Eclipse Marketplace处下载
点击Help->Eclipse Marketplace 搜索TestNg
我这里已经安装了,如果没安装可以根据提示进行安装,我是直接将TestNg拖动进来就可以安装了。
安装成功后重启Eclispe,可以在Windows->Preferences->TestNg看到,此时就可以创建TestNgClass
1.5TestNg测试
创建一个最基本的TestNG 测试Class
TestFirst.java
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;
public class TestFirst {
@Test
public void Test() {
}
@BeforeMethod
public void beforeMethod() {
System.out.println("----beforeMethod----");
}
@AfterMethod
public void afterMethod() {
System.out.println("----afterMethod----");
}
@BeforeClass
public void beforeClass() {
System.out.println("----beforeClass----");
}
@AfterClass
public void afterClass() {
System.out.println("----afterClass----");
}
@BeforeTest
public void beforeTest() {
System.out.println("----beforeTest----");
}
@AfterTest
public void afterTest() {
System.out.println("----afterTest----");
}
@BeforeSuite
public void beforeSuite() {
System.out.println("----beforeSuite----");
}
@AfterSuite
public void afterSuite() {
System.out.println("----afterSuite----");
}
}
注意查看执行顺序
beforeSuite->beforeTest->beforeClass->beforeMethod->afterMetod->afterClass->afterTest->afterSuite
从上面的运行结果可以看出,TestNg的测试用例组织结构如下:
一个TestSuite由多个Test组成
一个Test由多个Class组成
一个Class由多个Method组成
当运行不同层级的测试用例时,可以通过不同的注解实现测试前的初始化工作,测试用例的执行和测试执行后的环境清理工作。测试运行前,要打开文件,启动数据库,读取参数配置,测试结束后关闭文件,关闭数据库,清理运行环境等。
相关文章
- Java反射机制详解(3) -java的反射和代理实现IOC模式 模拟spring
- 【JAVA】JSP操作数据库简单实例和mysql-connector-java-5.0.3-bin.jar项目配置方法
- Java RESTful Web Service实战(第2版) 1.7 Java领域的其他REST实现
- Predicate和Consumer接口– Java 8中java.util.function包下的接口
- java字节码生成框架及使用示例
- JAVA单元测试框架-15-TestNG并行执行测试用例
- JAVA单元测试框架-3-Parameter-DataProvider 参数处理
- JAVA单元测试框架-10-断言Assert
- JAVA单元测试框架-8-dependsOnMethods与dependsOnGroups
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- 37 Java基础 总结 完结篇 知识串讲 Java语言初识 基础语法 流程控制 方法 数组 面向对象 内部类 异常 常用类 集合框架 IO流 多线程 网络编程 GUI 注解
- 【Java】【异常排查】java.lang.NoClassDefFoundError 完美解决
- Java当中的集合框架Map
- 第41节:Java当中的类集框架
- java 多线程 1 线程 进程
- Java 权限框架 Shiro 实战二:与spring集成、filter机制
- 《Java EE核心框架实战》—— 2.5 将SQL语句作为字符串变量传入
- Java的静态成员类
- Java集合框架之三:HashMap源码解析
- java基本数据类型和包装类相互转换
- java中带图片按钮的大小设置
- java的守护线程与非守护线程
- 『Java练习生的自我修养』java-se进阶¹ • 初识多线程
- 【深入JAVA】java注解
- [java][db]JAVA分布式事务原理及应用
- Java小白入门200例01之基本打印输出
- APP自动化(java和python)——各种操作方法
- Java StringBuffer和StringBuilder的区别