将JUint 4转化为TestNG
来源:互联网 发布:手机淘宝看不到支付宝 编辑:程序博客网 时间:2024/05/21 09:37
对于大规模软件的测试,TestNG在很多方面的确优于JUnit 4。在项目开发初期,可能选择JUnit 4进行测试,但是到软件开发到一定阶段后,逐渐发现JUint 4不能满足更高的要求。此时,使用TestNG可以更好地对软件进行测试,那么如何从之前的JUnit 4测试转化为TestNG呢?
将JUnit 4测试转化为TestNG,首先要解决的是方法前面的annotation。虽然TestNG的annotation与JUint 4的annotation大部分在名称和功能上都相同,但是有些还是不同。JUnit 4与TestNG的annotation对比如下图:
上表中只是一些简单annotation的对应关系,TestNG的最大的优势在于其提供的参数化测试,包括从testng.xml文件和@DataProvider两种方式提供参数。JUnit 4提供的参数化测试功能很有限,所以转化为TestNG测试之后,需要根据实际测试需要手动添加一些参数化测试代码。
除了annotation之外,TestNG的断言与JUnit 4在期望结果与实际结果的顺序上也有些区别。好在TestNG的提供AssertJUnit与JUnit 4的顺序是一致的,在转换的时候,只需要import这个class就可以了。
Eclipse的TestNG plug-in提供了自动将JUnit 4的测试类自动转换为TestNG的功能。可以通过两种途径实现转化:单个test class转化和整个package或source folder转化。
1. 单个test class转化
单个test class转化比较简单。在test class中按Ctrl + 1快捷键,在弹出的菜单中选择Convert to TestNG,整个test class就会自动转化为TestNG的test class。
实例如下:
JUnit 4的test class:
package com.ibm.testng.test;import static org.junit.Assert.assertTrue;import java.io.IOException;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.ibm.yuejming.Copyright;/** * @author yuejming@cn.ibm.com */@Copyright(Copyright.HEADER + "2013" + Copyright.FOOTER)public class JUnitTest { @Before public void setUp() {} @Test(expected=IOException.class) public void test1() { assertTrue(true); } @Test public void test2() {} @After public void tearDown() {}}
自动转化后的TestNG的test class:
package com.ibm.testng.test;import static org.testng.AssertJUnit.assertTrue;import org.testng.annotations.AfterMethod;import org.testng.annotations.Test;import org.testng.annotations.BeforeMethod;import java.io.IOException;import com.ibm.yuejming.Copyright;/** * @author yuejming@cn.ibm.com */@Copyright(Copyright.HEADER + "2013" + Copyright.FOOTER)public class JUnitTest { @BeforeMethod public void setUp() {} @Test(expectedExceptions=IOException.class) public void test1() { assertTrue(true); } @Test public void test2() {} @AfterMethod public void tearDown() {}}转化前后的对比:
1)annotation跟之前表格的对应关系实现自动转化。
2)annotation对应import的class由JUnit 4的转化为TestNG的。
3)assert对应import的class由org.junit.Assert转化为org.testng.AssertJUnit。
2. 整个package或source folder转化
要实现整个package或source folder的自动转化,选中需要转化的package或者source folder,点击右键,选中TestNG -> Convert to TestNG,就会出现Refactoring向导,后面根据需要进行选择就可了。
- 将JUint 4转化为TestNG
- JUint
- 将Ip转化为十进制数字,将十进制数字转化为Ip
- 将bmp 转化为avi
- 将体能转化为智能
- 将字符串转化为日期
- 将数字转化为中文
- 将数字转化为中文
- 将DateRead转化为DataSet
- 将数字转化为中文
- 将汉字转化为字母
- 将IntPtr转化为byte[]
- 将int转化为字符
- 将CString转化为char*
- 将PDF转化为图片
- 将对象转化为DataTable
- 将人民币转化为大写
- 将字符串转化为日期
- widget中使用动画效果
- ThinkPHP 3.1快速入门:自动完成
- 【原】分享超实用工具给大家
- JAVA 中 Boolean.class 和 Boolean.Type的区别
- 数字排序,波动增长
- 将JUint 4转化为TestNG
- csapp2e 家庭作业 4.45
- 注册与回调
- 管道和命名管道(windows)
- DNS报文格式
- hdu 1069 Monkey and Banana
- WPF 圆角textbox
- java instanceof
- QML之Utility(Connections,Component,Timer,QtObject,Qt, WorkerScript,Loader,Repeater, SystemPalette,Fon