`
longgangbai
  • 浏览: 7331977 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Feed4Junit的简单使用(二)数据源来自文件

阅读更多

Feed4Junit官方地址:

http://databene.org/feed4junit.html

Feed4Junit数据源来自文件

           Feed4JUnit能够让编写JUnit的 参数化测试变得简便,并为这些测试提供预定义或随机测试数据。它能够从业务分析人员定义好的CVS或 Excel文件读取测试用例数据并在构建/单元测试框架中报告测试成功。

官方文档:

Reading test data from a file

Data sources are easily configured using the @Source annotation (org.databene.benerator.anno.Source):

@RunWith(Feeder.class)
public class LoginTest {

    @Test
    @Source("userlogin.csv")
    public void testLogin(String name, String password) {
          System.out.println("name:" + name + " password:" + password);
    }
    
 

Running the test, you will notice, that Feed4JUnit iterates through the CSV file and performs one test method call per data row.

Feed4JUnit currently supports the following file formats:

  • CSV files
  • Excel(TM) documents 

 

package com.easyway.feed4junit;

import static org.junit.Assert.assertEquals;

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

import com.easyway.junit4.JunitSample.UserAccess;


/**
 * Feed4JUnit - Get Data from CSV/Excel File source
 * 以文件作为数据源
Feed4JUnit 支持从 CSV 或者 Excel 文件里面读取数据作为输入,这里我们以 Excel 文件为例。
1. 在测试项目的根目录下创建 Data.xls 数据文件,样例数据如图 3,默认情况下,第一行会以列名存在,在运行过程中不会作为数据读取。
图 3. Excel 数据源

2. 创建测试类并在接收数据的测试方法上声明数据源为 @Source("Data.xls"),Excel 中的数据在传递过程中会自动按照列与测试
方法的参数的位置顺序进行匹配,并以行作为一个单位读取并传递给测试方法体。比如图 3 中的 user 列的值会做为方法的第一个参数传入方法体中,
pw 列的值会作为方法的第二个参数,以此类推。在测试进行过程中,首先在 Excel 文件中读取一行(包含三列),接着按照位置顺序将数据传递到方
法体中(每列按顺序对应一个参数)进行执行,执行完成后读取 Excel 中的下一行进行相同流程的测试,其原理与 Java 中的迭代器十分类似。请注意
当数据文件中数据的列数小于测试方法参数的个数的时候,测试会因为位置不匹配而失败。
 */

@RunWith(Feeder.class)
public class F4JfromFile {
	
	@Test
	@Source("data.csv")//CSV source
	public void testAccessCheck_CSV(String userName, String pw, boolean expected) {
		assertEquals(expected, UserAccess.accessCheck(userName, pw));
	}
	
	@Test
	@Source("data.xlsx")//Excel source
	public void testAccessCheck_Excel(String userName, String pw, boolean expected) {
		assertEquals(expected, UserAccess.accessCheck(userName, pw));
	}
}

 

分享到:
评论

相关推荐

    基于Feed4JUnit架构的单元测试技术研究与应用.docx

    Feed4JUnit则为解决这一问题提供了创新的解决方案,它是一个基于JUnit的开源扩展,允许将测试数据存储在文件或其他数据源中,实现了数据与代码的分离,提高了测试的灵活性和可重用性。 1. Feed4JUnit架构介绍 Feed...

    Freed4junit案例

    首先,我们需要在测试类中引入`Feed4JUnit`的相关依赖,并定义一个`@TestSource`注解,指定数据源的位置。数据源可以是文件路径,也可以是URL或者数据库查询。 接着,我们创建一个`TestData`类,用于解析和表示测试...

    Feed4JUnit-开源

    Feed4JUnit是一款开源工具,专为Java开发人员设计,它扩展了JUnit测试框架的功能,使得编写和执行参数化的测试变得更加简单。JUnit是Java领域广泛使用的单元测试框架,而Feed4JUnit则是其强大的补充,尤其在处理需要...

    selenium+junit+hudson自动化测试初探

    3. **Eclipse**:创建Java项目,导入Selenium和JUnit库,配置JUnit插件和feed4junit,以支持参数化测试。 **编写和执行测试脚本** 在Eclipse中,使用JUnit编写测试类,集成Selenium WebDriver,通过IDE录制的脚本...

    feed4testng

    源代码分析还能让我们了解feed4testng是如何处理测试数据的,例如是否支持XML配置文件导入,或者是否提供了自定义数据提供器。 "feed4testng-1.0"这个文件名可能是指该版本是feed4testng的第一个正式发布版本,通常...

    easy-feed-oven-main-源码.rar

    【标题】"easy-feed-oven-main-源码.rar" 是一个包含源代码的压缩文件,很可能是某个软件或系统的主程序部分。从名称上看,"easy-feed-oven" 可能是一个与自动化喂养或者烹饪设备相关的项目,而 "main" 指的是这个...

    简易新闻客户端

    8. **缓存策略**:为了提高用户体验,通常会将新闻数据缓存在本地,如SQLite数据库(Android)或CoreData(iOS),或者使用SharedPreferences(Android)存储一些简单的配置信息。 9. **异步处理**:避免阻塞主线程...

    基于Java的XML写的RSS阅读器.zip

    5. **数据持久化**:为了保存用户的订阅和阅读历史,可能使用了数据库(如SQLite)或简单的文本文件。 6. **事件驱动编程**:当新的RSS feed更新时,可能采用了事件监听机制来实时通知用户。 7. **多线程**:为了...

    JAVA xml RSS

    3. **RSS库使用**:学习如何使用如`rsslib.jar`这样的库来创建新的RSS feed,更新现有feed,或者从URL抓取并解析RSS数据。 4. **XML和RSS的序列化与反序列化**:如何将Java对象转换为XML/RSS格式,以及如何从XML/...

    简单新闻客户端

    数据源可以是公开的API,如News API或RSS feed。 4. **RecyclerView与Adapter** 展示新闻列表通常用到RecyclerView,它是一个高效的列表视图,可以处理大量数据。开发者需要创建一个适配器(Adapter),将数据模型...

    android源代码 Rss阅读器

    在Android平台上,RSS阅读器是一种常见的应用程序,它允许用户订阅并获取来自不同网站的RSS feed,从而方便地浏览和管理新闻、博客文章等更新。在这个"android源代码 Rss阅读器"项目中,开发者提供了一个自编写的源...

    AuxilioApp:Feed Blogger 阅读器

    Feed Blogger通常是一种RSS(Really Simple Syndication)或Atom格式的数据源,它允许用户订阅并接收博客、新闻站点或其他在线内容的最新发布。 【描述】"辅助应用 Feed Blogger 阅读器" 强调了该应用的辅助功能,...

    毕业设计&课设--基于Android的新闻推荐系统,本科毕业设计项目。.zip

    4. **库文件**:可能包含第三方库的jar或aar包,用于扩展功能,如网络请求库(Retrofit、Volley)、数据解析库(Gson、Jackson)等。 5. **文档**:项目说明、设计文档、用户手册等,帮助理解项目结构和功能。 6. **...

    基于Java的实例源码-XML写的RSS阅读器.zip

    标题中的“基于Java的实例源码-XML写的RSS阅读器.zip”表明这是一个使用Java编程语言开发的项目,其主要功能是解析和展示RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布新闻、博客和其他定期...

    android RssReader源码.rar

    可能使用了JUnit、Espresso或Mockito等测试框架。 10. **版本控制与文档**: - "readme.md"文件可能包含了项目简介、安装指南、贡献方式等信息,对于开源项目来说是不可或缺的。 通过分析这个源码,开发者不仅...

    cpppro-android_rss_reader

    8. **数据持久化**:为了保存用户的订阅和阅读状态,项目可能使用SQLite数据库来存储RSS源信息和已读状态,以便下次启动应用时快速加载。 9. **权限管理**:考虑到Android系统的权限模型,项目需要在Manifest文件中...

    Android RSS管理器

    4. **数据模型**:定义RSS feed相关的数据模型类,如`Feed`,`Item`等,用于存储从XML解析出来的信息,如标题、描述、链接等。 5. **数据库存储**:为了离线访问和缓存RSS内容,可以使用SQLite数据库存储RSS feed。...

    android studio 版RSSapp

    在这个RSS应用中,开发者很可能使用了Gradle作为构建工具,进行模块化管理,并利用XML布局文件设计用户界面。 2. **RSS源添加**:用户可以通过输入RSS源的URL来订阅新的内容源。这需要解析URL对应的RSS feed,提取...

Global site tag (gtag.js) - Google Analytics