浏览 4965 次
锁定老帖子 主题:Junit 单元测试总结
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-12-03
junit3 有两个无理的要求: 1 测试用例必须继承TestCase类 2 测试方法的名称必须以test开头 这两个要求对我们写测试用例增加了无谓了束缚! junit4彻底改变了这两个问题 1 不用继承任何类,减少代码耦合性 2 采用Annotation(元数据)表明方法的用途。有以下几类: @Before 在每一个测试方法前要执行的方法 @After 再每一个测试方法后要执行的方法 @Test @ignore 忽略某个方法 3 高级的注视方法: @BeforeClass 这是在整个测试用例前执行的方法 例如读取一个文件 获取数据库连接等 @AfterClass 这是在整个测试用例后执行的方法 例如关闭连接 @Test(expected=XX,timeout=XX) 要测试的方法 expected异常测试 timeout时间限制测试 @RunWiht(XXX.class)选择测试加载器 public class TestDb { private static Connection conn = null; private static String url = "jdbc:oracle:thin:@172.19.37.10:1521:edadev"; private static String driverClassName = "oracle.jdbc.driver.OracleDriver"; private static String user = "score"; private static String pass = "score"; @BeforeClass public static void setUp() throws Exception { Class.forName(driverClassName).newInstance(); conn = DriverManager.getConnection(url, user, pass); } @AfterClass public static void tearDown() throws Exception { conn = null; } @Test public void testGetOneData() { try { Statement st = conn.createStatement(); String sql = "select 2-1 as tmp from dual"; ResultSet rs = st.executeQuery(sql); String str = null; while (rs.next()) { str = rs.getString("tmp"); } System.out.println(str); assertEquals("1", str); } catch (Exception e) { e.printStackTrace(); } } } 4 参数化测试 (后续单独研究一下) 5 打包测试 1 任意写个类 2 再类的开始要加以下注视 Suite.class是要选择的Runner TestDb.class是一个测试的类 @RunWith(Suite.class) @Suite.SuiteClasses(TestDb.class,....) public class TestSuit { } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |