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则为解决这一问题提供了创新的解决方案,它是一个基于JUnit的开源扩展,允许将测试数据存储在文件或其他数据源中,实现了数据与代码的分离,提高了测试的灵活性和可重用性。 1. Feed4JUnit架构介绍 Feed...
首先,我们需要在测试类中引入`Feed4JUnit`的相关依赖,并定义一个`@TestSource`注解,指定数据源的位置。数据源可以是文件路径,也可以是URL或者数据库查询。 接着,我们创建一个`TestData`类,用于解析和表示测试...
Feed4JUnit是一款开源工具,专为Java开发人员设计,它扩展了JUnit测试框架的功能,使得编写和执行参数化的测试变得更加简单。JUnit是Java领域广泛使用的单元测试框架,而Feed4JUnit则是其强大的补充,尤其在处理需要...
3. **Eclipse**:创建Java项目,导入Selenium和JUnit库,配置JUnit插件和feed4junit,以支持参数化测试。 **编写和执行测试脚本** 在Eclipse中,使用JUnit编写测试类,集成Selenium WebDriver,通过IDE录制的脚本...
源代码分析还能让我们了解feed4testng是如何处理测试数据的,例如是否支持XML配置文件导入,或者是否提供了自定义数据提供器。 "feed4testng-1.0"这个文件名可能是指该版本是feed4testng的第一个正式发布版本,通常...
【标题】"easy-feed-oven-main-源码.rar" 是一个包含源代码的压缩文件,很可能是某个软件或系统的主程序部分。从名称上看,"easy-feed-oven" 可能是一个与自动化喂养或者烹饪设备相关的项目,而 "main" 指的是这个...
8. **缓存策略**:为了提高用户体验,通常会将新闻数据缓存在本地,如SQLite数据库(Android)或CoreData(iOS),或者使用SharedPreferences(Android)存储一些简单的配置信息。 9. **异步处理**:避免阻塞主线程...
5. **数据持久化**:为了保存用户的订阅和阅读历史,可能使用了数据库(如SQLite)或简单的文本文件。 6. **事件驱动编程**:当新的RSS feed更新时,可能采用了事件监听机制来实时通知用户。 7. **多线程**:为了...
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阅读器是一种常见的应用程序,它允许用户订阅并获取来自不同网站的RSS feed,从而方便地浏览和管理新闻、博客文章等更新。在这个"android源代码 Rss阅读器"项目中,开发者提供了一个自编写的源...
Feed Blogger通常是一种RSS(Really Simple Syndication)或Atom格式的数据源,它允许用户订阅并接收博客、新闻站点或其他在线内容的最新发布。 【描述】"辅助应用 Feed Blogger 阅读器" 强调了该应用的辅助功能,...
4. **库文件**:可能包含第三方库的jar或aar包,用于扩展功能,如网络请求库(Retrofit、Volley)、数据解析库(Gson、Jackson)等。 5. **文档**:项目说明、设计文档、用户手册等,帮助理解项目结构和功能。 6. **...
标题中的“基于Java的实例源码-XML写的RSS阅读器.zip”表明这是一个使用Java编程语言开发的项目,其主要功能是解析和展示RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布新闻、博客和其他定期...
可能使用了JUnit、Espresso或Mockito等测试框架。 10. **版本控制与文档**: - "readme.md"文件可能包含了项目简介、安装指南、贡献方式等信息,对于开源项目来说是不可或缺的。 通过分析这个源码,开发者不仅...
8. **数据持久化**:为了保存用户的订阅和阅读状态,项目可能使用SQLite数据库来存储RSS源信息和已读状态,以便下次启动应用时快速加载。 9. **权限管理**:考虑到Android系统的权限模型,项目需要在Manifest文件中...
4. **数据模型**:定义RSS feed相关的数据模型类,如`Feed`,`Item`等,用于存储从XML解析出来的信息,如标题、描述、链接等。 5. **数据库存储**:为了离线访问和缓存RSS内容,可以使用SQLite数据库存储RSS feed。...
在这个RSS应用中,开发者很可能使用了Gradle作为构建工具,进行模块化管理,并利用XML布局文件设计用户界面。 2. **RSS源添加**:用户可以通过输入RSS源的URL来订阅新的内容源。这需要解析URL对应的RSS feed,提取...