最近决定开始使用TestNG来替代junit,作为未来的单元测试基础组件。
google了一下没有找到好的详细的文档,最后发现官网上的文档其实挺全的,决定翻译一下。
TestNG的官方文档请见: http://testng.org/doc/documentation-main.html
1. 介绍
TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器)。
编写一个测试的过程有三个典型步骤:
* 编写测试的 业务逻辑并在代码中插入TestNG annotation
* 将测试信息添加到testng.xml文件或者build.xml中
* 运行TestNG
在欢迎页面上可以找到快速入门示例。
下面是这篇文档使用的概念:
* suite由xml文件描述。它包含一个或多个测试并被定义为<suite>标签
* test由<test>描述并包含一个或者多个TestNG类
* TestNG类是包含至少一个TestNG annotation的java类,由<class>标签描述并包含一个或多个测试方法
* 测试方法是源文件中带有@Testd注释的java方法
TestNG测试可以被@BeforeXXX 和 @AfterXXX annotations配置,容许在特定点的前后执行一些java逻辑,这些点上面已经列出。
这份手册的剩余部分将讲述以下内容:
* 所有的annotation列表并带有简短说明,为TestNG的多种功能性提供参考, 你可能需要参考为每个annotation提供的代码片段来学习细节。
* testng.xml文件描述,它的语法和如果指定它。
* 多个特性的详细列表和怎样结合annotation和testng.xml来使用它们
*******************************************************************************
注:上面的内容很简短,但是请注意其中的一些细节。
1. TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试
这个是TestNG设计的出发点,不仅仅是单元测试,而且可以用于集成测试。设计目标的不同,对比junit的只适合用于单元测试,TestNG无疑走的更远。
可以用于集成测试,这个特性是我选择TestNG的最重要的原因。
2. 测试的过程的三个典型步骤,注意和junit(4.0)相比,多了一个将测试信息添加到testng.xml文件或者build.xml
测试信息尤其是测试数据不再写死在测试代码中,好处就是修改测试数据时不需要修改代码/编译了,从而有助于将测试人员引入单元测试/集成测试。
3. 基本概念,相比junit的TestCase/TestSuite,TestNG有suite/test/test method三个级别,即将test/test method明确区分开了。
junit中的TestCase将test/test method混合,比较容易让人概念不清晰,尤其是新手。