- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
理解 DataSet (数据集)和 DataTable (数据表)
理解 DataSet (数据集)和 DataTable (数据表)
PHPUnit 的数据库扩展模块的核⼼概念是 DataSet (数据集)和 DataTable (数据
表)。为了掌握如何使⽤ PHPUnit 进⾏测试 需要试着去了解这些简单的概念。
DataSet (数据集)和 DataTable (数据表)是围绕着数据库表、⾏、列的抽象层。通
过⼀套简单的API 底层数据库内容被隐藏在对象结构之下 同时 这个对象结构也
可以⽤其他⾮数据库数据源来实现。
为了能⽐较实际内容和预期内容 这种抽象是必须的。预期内容可以⽤诸如 XML 、
YAML 、 CSV ⽂件或者 PHP 数组等⽅式来表达。DataSet 和 DataTable 接⼜以语义相
似的⽅式模拟关系数据库存储 从⽽能够对这些概念上完全不同的数据源进⾏⽐较。
在测试中 数据库断⾔的⼯作流由以下三个简单的步骤组成:
⽤表名称来指定数据库中的⼀个或多个表 (实际上是指定了⼀个数据集)
⽤你喜欢的格式 (YAML 、XML等等)来指定预期数据集
断⾔这两个数据集陈述是彼此相等的。
在 PHPUnit 的数据库扩展中 断⾔并⾮唯⼀使⽤ DataSet 和 DataTable 的情形。就像
上⼀节中所展⽰的那样 它们也⽤于描述数据库的初始内容。数据库 TestCase 类强制
要求定义⼀个基境数据集 随后⽤它来:
根据此数据集所指定的所有表名 将数据库中对应表内的⾏全部删除。
将数据集内数据表中的所有⾏写⼊数据库。
可⽤的各种实现
有三种不同类型的 DataSet/DataTable :
基于⽂件的 DataSet 和 DataTable
基于查询的 DataSet 和 DataTable
筛选与组合 DataSet 和 DataTable
基于⽂件的数据集和表⼀般⽤于初始化基境或描述数据库的预期状态。
Flat XML DataSet (平直 XML 数据集)
最常见的⼀种数据集名叫 Flat XML 。这是⼀种⾮常简单的 XML 格式 根节点为
dataset 根节点下的每个标签就代表数据库中的⼀⾏数据。标签的名称就等于
表名 ⽽每个属性代表⼀个列。⼀个简单的留⾔本应⽤程序的例⼦⼤致上可能是这
样:
?xml version=1.0 ?
dataset
guestbook id=1 content=Hello buddy ! user=joe created=
guestbook id= content=I like it! user=nancy created=
/dataset
显然 这⾮常易于编写。在这⾥ guestbook 是表名 这个表内有两⾏记录 每
⾏有四个列:“id”、“content”、“use ” 和 “c eated” 以及各⾃的值。
不过 这种简单性是有代价的。
从上⾯这个例⼦⾥不太容易看出该如何指定⼀个空表。其实可以插⼊⼀个没有属性值
的标签 以空表的名字作为标签名。空的 guestbook 表所对应的 Flat XML ⽂件⼤致上
可能是这样:
?xml version=1.0 ?
dataset
guestbook /
/dataset
在 Flat XML DataSet 中 要处理 NULL 值会⾮常烦。在⼏乎所有数据库中 (O acle 是
个例外) NULL 值和空字符串值是有区别的 这⼀点在 Flat XML 格式中很难表
述。可以在数据⾏的表述中省略掉对应的属性来表⽰NULL值。假定上⾯这个留⾔本
通过在 use 列使⽤ NULL 值的⽅式来允许匿名留⾔ 那么 guestbook 表的内容可能是
这样:
?xml version=1.0 ?
dataset
guestbook id=1 content=Hello buddy ! user=joe created=
guestbook id= content=I like it! created= 010-04- 6 1 :
/dataset
在这个例⼦⾥第⼆个条⽬是匿名发表的。但是这为列的识别带来了⼀个⾮常严重的问
题。在数据集相等断⾔的判定过程中 每个数据集都需要
您可能关注的文档
最近下载
- 律师制度与实务课件:律师收费.pptx
- xx集团粮食仓储及加工基地可行性研究报告.docx
- (正式版)-B 5768.2-2022 道路交通标志和标线 第2部分:道路交通标志.docx VIP
- 青少年法制教育讲稿-甘肃省副省长罗笑虎为中小学生作毒品预防教育报告全文.docx VIP
- 2025年水平定向钻市场调查报告.docx
- 辅导员大一新生入学教育主题班会.pptx VIP
- 天津布兰德新摩尔企业策划咨询有限公司公司简介.ppt VIP
- intouch hmi与archestra集成本机成功安装.pdf VIP
- 中国染料化工项目经营分析报告.docx
- 2025-2026学年浙美版(2024)小学美术二年级上册教学计划及进度表.docx
文档评论(0)