<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>没有比人更高的山 &#187; 测试</title>
	<atom:link href="http://www.zhlwish.com/tag/%e6%b5%8b%e8%af%95/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zhlwish.com</link>
	<description>Where there is a will there is a way.</description>
	<lastBuildDate>Fri, 13 Jan 2012 08:13:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>DbUnit中文教程——核心组件</title>
		<link>http://www.zhlwish.com/2009/11/15/dbunit-lesson-core/</link>
		<comments>http://www.zhlwish.com/2009/11/15/dbunit-lesson-core/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 01:41:01 +0000</pubDate>
		<dc:creator>周亮</dc:creator>
				<category><![CDATA[DbUnit]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[测试]]></category>

		<guid isPermaLink="false">http://www.zhlwish.com/?p=67</guid>
		<description><![CDATA[注：本文基本翻译自DbUnit的文档，翻译不好朋友见谅 本文主要介绍在使用DBUnit编写测试用例的时候会常用的几个接口和类 IDatabaseConnection：接口，DbUnit的数据库连接对象，封装了java.sql.Connection IDataSet：接口，DbUnit的数据集对象，里面可以放多个数据表 DataBaseOperation：抽象类，数据库操作类 IDatabaseConnection有两个子类： DatabaseConnection：封装了一个普通的JDBC连接 DatabaseDataSourceConnection：封装了一个JDBC数据源连接 IDataSet是DbUnit用来存储数据的一种数据结构 FlatXmlDataSet：最普遍使用的数据集，每个XML元素代表数据表中的一行数据，XML元素的名称是表明，属性名是列名 XmlDataSet StreamingDataSet DatabaseDataSet QueryDataSet DefaultDataSet CompositeDateSet FilteredDataSet XlsDataSet ReplacementDataSet DatabaseOperation DatabaseOperation.UPDATE：这个操作将从测试数据源中读取的数据集的内容更新到数据库中，注意这个操作正确执行的前提是测试数据表已经存在，如果不存在这个测试用例将会失败 DatabaseOperation.INSERT：这个操作把从测试数据源中读取的数据集的内容插入到数据库中，注意这个操作正确执行的前提是测试数据表不存在，这个操作将新建数据表。如果测试数据表已经存在这个测试用例将会失败。另外，在执行这个操作的时候要特别注意数据集中数据表的顺序，否则可能会因为违反外键约束而造成测试用例失败 DatabaseOperation.DELETE：这个操作会从数据库中删除数据，注意，这个操作只删除数据集中存在的数据行而不是整个数据表中的数据 DatabaseOperation.DELETE_ALL：这个操作删除数据表中的所有行，注意，这个操作也只影响数据集中声明了的数据表，数据集中没有涉及到的数据表中的数据不会删除 DatabaseOperation.TRUNCATE：这个操作将删除数据集中声明的数据表，如果数据中有些表并没有在预定义的数据集中提到，这个数据表将不会被影响。注意，这个操作是按照相反的顺序执行的 DatabaseOperation.REFRESH：顾名思义，这个操作将把预定义数据集中的数据同步到数据库中，也就是说这个操作将更新数据数中已有的数据、插入数据库中没有的数据。数据库中已有的、但是数据集中没有的行将不会被影响。我们用一个产品数据库的拷贝进行测试的时候可以使用这个操作将预定义数据同步到产品数据库中 DatabaseOperation.CLEAN_INSERT：删除所有的数据表中的数据，然后插入数据集中定义的数据，如果你想保证数据库是受控的，这个你会比较喜欢。 DatabaseOperation.NONE：不执行任何操作 CompositeOperation：将多个操作组合成一个，便以维护和重用 TransactionOperation：在一个事物内执行多个操作 IdentityInsertOperation：在使用MSSQL的时候，插入数据时IDENTITY列我们是没有办法控制的，用这个就可以控制了，只有在使用MSSQL的时候才会用得到]]></description>
		<wfw:commentRss>http://www.zhlwish.com/2009/11/15/dbunit-lesson-core/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DbUnit中文教程——基本原理和简单开始</title>
		<link>http://www.zhlwish.com/2009/11/15/dbunit-lesson-simple-start/</link>
		<comments>http://www.zhlwish.com/2009/11/15/dbunit-lesson-simple-start/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 01:39:32 +0000</pubDate>
		<dc:creator>周亮</dc:creator>
				<category><![CDATA[DbUnit]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[测试]]></category>

		<guid isPermaLink="false">http://www.zhlwish.com/?p=65</guid>
		<description><![CDATA[DBUnit是JUnit的一个扩展，对于数据库驱动的项目而言（基本上所有的Web项目都是数据库驱动的），对于服务层的单元测试非常麻烦，因为不能保证每次测试时数据库都是同一个状态，所以开发者不敢写断言（assertEquals()）。我个人也是因为这个原因所以对驱动测试开发总是敬而远之。 有了DBUnit，一切都变了，DBUnit的目的就是在每个单元测试运行之前将数据库初始化成一个预定义的状态，以保证单元测试时的断言不会因为数据库状态发生了变化而失败，同时可以解决前一个单元测试失败导致对数据库的操作未按照测试用例执行而影响后一个单元测试的问题。 DBUnit可以将数据库中的数据导出成XML数据集，也可以将XML数据集重新导入到数据库中，这也是DBUnit实现测试前初始化数据库状态的实现方法，而且，DBUnit还可以验证数据库中的模式和数据是不是和XML数据集中的模式和数据是否一样，也就是真正意义上的“数据库测试”，不过DBUnit貌似还不支持数据库存储过程、触发器、视图等高级功能的测试。DBUnit2.0增强了对于流模式下巨型XML数据集的支持。 相信信仰单元测试驱动开发或者有意向在开发中加入单元测试的开发者很容易理解上面的叙述，下面用一个示例演示DBUnit的功能。 假设我们开发中已经建立了一个数据库，里面只有一个数据表user： create table user ( id bigint auto_increament primary key, username char(48) not null, password char(48) not null, name varchar(48) not null ); 其中有一行数据： insert into user(id, username, password, name) values(1, 'admin', '123', 'Administrator'); 第一步是根据测试数据建立XML数据集，DBUnit用下面的格式来表示一行数据： &#60;user &#8230; <a href="http://www.zhlwish.com/2009/11/15/dbunit-lesson-simple-start/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.zhlwish.com/2009/11/15/dbunit-lesson-simple-start/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

