清单 6 为在方法上声明 @Database:
清单 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 同时还提供了大量数据的随机测试和等价类测试等众多功能,如果您感兴趣可以自行参考。