测试数据与代码分离的测试

发表于:2013-1-10 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  3、数据库作为数据源

  同样,Feed4junit也支持数据库数据源,这里不做详细的介绍:其原理和上面文件数据源差不多,样例代码如下:

  类上声明@Database:

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:mysql://localhost:5000/SAMPLE",
                driver = "com.mysql.jdbc.Driver",
                user = "admin",
                password = "admin")
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());

        }
}

  测试方法上声明@Database

@RunWith(Feeder.class)
public class F4JfromDB_Method {
        @Test
        @Database(
                        id = "testdb",
                        url = "jdbc:mysql://localhost:5000/SAMPLE",

                        driver = "com.mysql.jdbc.Driver",

                        user = "admin",
                        password = "admin")
        @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、最后

  Feed4JUnit 提供了对数据与代码分离的测试支持。只需要简单的注释,Feed4JUnit 就可以使用户很方便的实施数据与代码分离之间的测试,对于习惯了JUnit 测试框架的同学来说,是一个十分省力的利器。

  Feed4JUnit 同时还提供大量数据的随机测试和等价类测试等众多功能,这个留到后面再进行挖掘。

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号