2. 解压下载的 zip 包,复制整个 lib 文件夹到您的 Java 项目的根目录,如图 1:
图 1. 复制 lib 到项目根目录
3. 选定项目,右键选择项目的属性,然后通过 Add JARs 将步骤 2 中 lib 文件夹下的所有 Jar 添加到项目的 Build Path 下,如图 2
图 2. 添加 Jar 到 Build Path
通过以上三步,您已经准备好您的 Feed4JUnit 环境并可以开始使用它,当然,开发测试代码之前,您必需要将 Feed4JUnit 相应的包 Import 进您的类。
使用 Feed4JUnit 实现数据与代码分离的测试
Feed4JUnit 的数据源可以包括以下几种类型 - 文件 (CSV 或者 Excel )、数据库、自定义数据源。
Feed4JUnit 使用一个特殊的运行类 Feeder.class,用来支持与标识参数化测试,如果您想要编写数据与代码分离的测试脚本,必须在您的测试类上增加注释 @RunWith(Feeder.class) 。同时,您需要使用 @Test 来标示您实现测试的方法,并且使用 @Source 来声明和接收数据源的数据,基本的代码结构如清单 3 所示:
清单 3. 基本代码结构
package sample.test;
import static org.junit.Assert.assertEquals;
import org.databene.feed4junit.Feeder;
import org.databene.benerator.anno.Source;
import org.junit.Test;
import org.junit.runner.RunWith;
/*
* Feed4JUnit - @RunWith, @Test and @Source
*/
@RunWith(Feeder.class) //Specify the class will be ran as Feeder class
public class Feed4JSample {
@Test //Specify the method as a test method
@Source()//Specify the input data source
public void testAccessCheck() {
assertEquals(true, true);
}
}
以文件作为数据源
Feed4JUnit 支持从 CSV 或者 Excel 文件里面读取数据作为输入,这里我们以 Excel 文件为例。
1. 在测试项目的根目录下创建 Data.xls 数据文件,样例数据如图 3,默认情况下,第一行会以列名存在,在运行过程中不会作为数据读取。
图 3. Excel 数据源
2. 创建测试类并在接收数据的测试方法上声明数据源为 @Source("Data.xls"),Excel 中的数据在传递过程中会自动按照列与测试方法的参数的位置顺序进行匹配,并以行作为一个单位读取并传递给测试方法体。比如图 3 中的 user 列的值会做为方法的第一个参数传入方法体中,pw 列的值会作为方法的第二个参数,以此类推。在测试进行过程中,首先在 Excel 文件中读取一行(包含三列),接着按照位置顺序将数据传递到方法体中(每列按顺序对应一个参数)进行执行,执行完成后读取 Excel 中的下一行进行相同流程的测试,其原理与 Java 中的迭代器十分类似。请注意当数据文件中数据的列数小于测试方法参数的个数的时候,测试会因为位置不匹配而失败。