用YAML构建数据测试DAO层

简介:
测试DAO层最常见的就是直接组织数据,调用相关的方法,然后查看 数据库,看看相关数据是否在DB中正确的展示。这样 测试,效率低下,容易出错,过多的依赖了人肉。如果选择测试数据来配置,根据配置的测试数据验证相关信息,或许能够达到事半功倍的效果。
  测试数据配置选择(YAML)
  在JavaBean中,传统的对象set是这样的:
  对象属性多时,对象的set显得有些复杂,自动代码生成工具生成的代码较多都是set数据的,代码看起来不够雅观,需要把测试数据和测试代码分离。可以提供参考的又xml,wiki的方式。xml的方式读取大家都比较清楚,这里介绍一下wiki:
   wiki语法
  |table|表名称|
  |字段名称1|字段名称2|字段名称3|
  |字段值|字段值|字段值|
  |字段值|字段值|字段值|
  |字段值|字段值|字段值|
  通过wiki配置的方式,和表字段一一对应,看起来比较直观,只是在字段较多时容易造成混淆,同时需要自己写代码支持wiki语法,框架级别的支持不够。xml配置也麻烦,数据阅读也不够直观。
  yaml简单,直观,方便阅读, java支持框架(http://yaml.org/)较多,所以选择yaml来配置测试数据。和TestNg保持一致,使用snakeyaml (http://code.google.com/p/snakeyaml/)
   测试过程:
  测试数据包括BaseDao对DB的基本操作:insert , update , find , findById , list , listCount , delete。由于findById和delete都是只有一个字段,所以测试数据基本生成只有insert , update ,delete , list这四个,业务模块可以根据自己的需求添加相关的Dao层测试数据。
   测试修改示例:
  说明:
  字段会自动转换成需要类型,所以long设置后面不用加L
  为空的数据不用设置,也不用删除相关的属性(尤其是insert,后面可以作为复制粘贴的参考)
  时间设置createdTime: 2011-09-23 15:03:17
  数据读取的代码
  读取yaml配置文件数据,放置到map中的代码:
  子类中测试代码
  调用data中的属性,获取到相关对象
  User user = data.get("insert");
  代码生成工具如果用yaml配置,彻底分离了测试数据准备和代码,会让测试更加简单!
最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
10月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
689 116
|
10月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
686 114
|
10月前
|
测试技术 持续交付 API
测试的艺术:掌握测试金字塔,构建高效测试策略
测试的艺术:掌握测试金字塔,构建高效测试策略
517 77
|
10月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
872 113
|
10月前
|
安全 数据管理 测试技术
告别蛮力:让测试数据生成变得智能而高效
告别蛮力:让测试数据生成变得智能而高效
714 120
|
10月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
11月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
422 4
|
11月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
423 0
|
存储 人工智能 文字识别
从零开始打造AI测试平台:文档解析与知识库构建详解
AI时代构建高效测试平台面临新挑战。本文聚焦AI问答系统知识库建设,重点解析文档解析关键环节,为测试工程师提供实用技术指导和测试方法论
|
人工智能 自然语言处理 JavaScript
专为 Claude Code 设计的基于 YAML 的 Playwright MCP 自动化测试
YAML配置结合Claude Code与Playwright MCP,将自动化测试变得人人可用。通过简洁的YAML语法替代复杂的JavaScript代码,解决传统测试中冗长、硬编码和复用性差等问题。自然语言描述测试步骤,AI解析执行,支持多环境切换与智能报告生成,极大降低技术门槛,提升团队协作效率。无论是开发、QA还是产品经理,都能轻松参与测试流程,真正实现可读、易维护的自动化测试新范式。
4675 3