您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
基于JUnit使用Feed4JUnit实现数据与代码分离
作者:网络转载 发布时间:[ 2013/4/12 13:40:26 ] 推荐标签:

  图 5. 数据表中的测试数据

  首先,创建测试类,添加 @Database 注释并增加数据库的连接信息,同时指定一个表示数据库的 id,在测试方法的 @Source 中通过 id 进行关联,并制定 selector 的语句进行数据查询,例如本例中的 selector = "select * from TEST",会从 TEST 表中取出全部数据用于测试,细节请参考以下代码示例:

  清单 5 为在类上声明 @Database。

package sample.test;

import static org.junit.Assert.assertEquals;

import org.databene.benerator.anno.Database;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.junit.Test;
import org.junit.runner.RunWith;

import sample.code.UserAccess;

/*
 * Feed4JUnit - Get Data from Database, all test methods can use the database data
 */
@RunWith(Feeder.class)
@Database(
  id = "testdb",
  url = "jdbc:db2://localhost:50000/SAMPLE",
  driver = "com.ibm.db2.jcc.DB2Driver",
  user = "db2admin",
  password = "db2admin")
public class F4JfromDB {

 @Test
 @Source(id = "testdb", selector = "select * from TEST")
 public void testAccessCheck(String userName, String pw, String expected) {
  Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
  assertEquals(expected.trim(), bSucess.toString());

 }
}

  清单 6. 在方法上声明 @Database
/*
 * Feed4JUnit - Get Data from Database,
 only the specified method can use the database data
 */

@RunWith(Feeder.class)
public class F4JfromDB_Method {
 @Test
 @Database(
   id = "testdb",
   url = "jdbc:db2://localhost:50000/SAMPLE",
   driver = "com.ibm.db2.jcc.DB2Driver",
   user = "db2admin",
   password = "db2admin")
 @Source(id = "testdb", selector = "select * from TEST")
 public void testAccessCheck(String userName, String pw, String expected) {
  Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
  assertEquals(expected.trim(), bSucess.toString());

 }
}

 

  测试运行过程中,通过 url,driver 等信息建立数据连接,通过 selector 发出数据请求,后完成查询并把数据传递给测试方法,数据在传递给方法的时候,会按数据表的列的顺序与参数进行匹配,运行结果与图 4 类似。

  自定义数据源

  除了 CSV,Excel 和数据库的数据源外,Feed4JUnit 还提供自定义数据源,以满足不同用户的需求,用户同样可以通过封装 JUnit 4 提供的参数化测试的方法来完成数据源自定义,所有这里作者不再详述,用户可以封装并取得不同的数据源的数据,传递给 Feed4JUnit 的相应接口,来完成数据源的自定义。

  结束语

  本文通过对比介绍和简单易懂的实例全面讲解了 Feed4JUnit 对数据与代码分离的测试支持。通过提供简单的注释,Feed4JUnit 使用户能够极其方便的实施数据与代码分离的测试,极大地增强了 JUnit 测试框架的易用性。 相信您已经在本文的叙述中看到它的优点。同时,本文所叙述的仅仅是 Feed4JUnit 提供的测试增强功能的一部分,Feed4JUnit 同时还提供了大量数据的随机测试和等价类测试等众多功能,如果您感兴趣可以自行参考。

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd