Fitnesse使用系列六

本文深入探讨了Table表在Fitnesse框架中的实现方式、执行逻辑及结果展示机制。Table表提供了高度灵活性,允许创建任意样式表格,并通过特定方法处理输入输出,实现复杂的测试和验证流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Table 表
基本上这一节就是文档翻译,不打算写示例了,原因结尾会说。

Table表的意思是你可以写出任意样式的表格来。那么任意样式的表格是如何被fitnesse识别并执行的?以及如何展示执行结果的?一起来看一下。

前面几种表格的基本思路是——要么由表头来确定方法名(决策表);要么固定方法名(动态决策表、查询表);要么结合某些标识符确定方法名(脚本表)。总之给人有迹可循的印象,而Table表要换个思路——没有表头,也不用纠结于那个数传给了哪个变量。唯一必须有的方法名称是List doTable(List<List<String>>)。可以看出输入参数是一个两级List,其实就是表格内容啦。里面一级List是某一行中的元素,都是字符串形式传过去的;外面一级List就是多个行了。返回值其实也是一个两级List,只不过简写了。写成这样就更精确了——List<List<String>> doTable(List<List<String>> table)。返回的List的结构也是一样的,各个行、行中的各个元素。元素也是字符串形式,内容如下:
pass——表示通过
pass:<message>——通过且带信息
...不一一列举了,参考文档的说明

可以看出,在这个方法里我们要全面负责输入和输出,针对输入List中的内容做出判断和处理,再写到一个输出List里。这也意味着fixture相对灵活与复杂。

结果展示是这样的:把这个返回的“表格”(二级列表)中的元素和原始“表格”进行“逐格叠加”。当输出字符是pass,就把输入表的这个“格”变绿显示,如果是pass:message,就变绿且附加message显示,如果是fail,就变红显示,如果是空字符串,就黑色原始值显示,如果是没有标记的普通字符串,就替换原来的内容并且红色......
如果返回“表格”的大小、长短和输入表格不同,那么“叠加”会发生什么。fitnesse已经考虑到了这点——如果结果短了,后面就不管了,原样显示;如果结果长了,就附加显示出来

综上所述,Table表是一种最灵活的表示。但我个人相当不建议使用这种,除非从之前介绍的表格中找不到合适的。原因是这种代码写起来会比较复杂且通用性极差。我对复杂的东西有天然的抵触心理。有人说程序员分两种,一种是把简单的事情考虑的很复杂,一种是把复杂的事情考虑的尽量简单。毫无疑问我是后面这种。我所有的文章都是在尽量用最简单的方法来阐述事情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值