本篇将重点介绍Fitnesse测试引擎slim, slim是(simple list Invocation method)的缩写,使用来代替的fit的测试引擎,不同于fit的是,slim将html的解析,比较以及颜色的改变都放在了fitnesse上面去完成,而不是像fit一样放在被测系统这一端去完成,slim是一个自定义的协议,是一个准RPC协议,通过此协议fitnesse可以驱动被测系统的方法。
其中核心的包是fitnesse.slim此包为slim协议的核心,fitnesse.slim.converters此包为slim中变量参数转换器以及fitnesse.slimTables此包为slim中表格类型。
如果我们要使用slim作为测试引擎,那么必须在wiki页面上定义测试类型
!define TEST_SYSTEM {slim}
slim本身总共包括10种表格类型,首先介绍decision table:
我们经常使用decision table作为一个真假表
该测试用例对应的测试代码如下所示:
public class ShouldIBuyMilk {
private int dollars;
private int pints;
private boolean creditCard;
public void setCashInWallet(int dollars) {
this.dollars = dollars;
}
public void setPintsOfMilkRemaining(int pints) {
this.pints = pints;
}
public void setCreditCard(String valid) {
creditCard = "yes".equals(valid);
}
public String goToStore() {
(pints == 0 && (dollars > 2 || creditCard)) ? "yes" : "no";
}
首先看表格的第一行should I buy milk对应测试代码ShouldIBuyMilk测试类,再看表格第二行第一列cash in wallet对应测试代码setCashInWallet方法,第二列credit card对应测试代码setCreditCard,以此类推后面几列,我们看到最后一列有点比前面几列多了一个?号,这个问号表示最后一列是一个方法,也就是我们需要得到的结果,前面几列表示参数,所以他们需要在测试代码中加上set。从表格的第三行开始就是我们的测试用例参数,总共8个测试用例在一张decision表格中就全部描述完成,当我们点击Test按钮就可以得到以下结果:
我们可以看到从第三行开始绿色的表示通过的case,红色的表示失败的case并且会有实际值显示出来,这样我们在一次执行中就完成了8个case的执行。下一节中我会重点剖析decision表格的源码结构。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY