修改fitnesse源码->自定义页面脚本中各种Table(ScriptTable,DecisionTable)的类实例变量
来源:互联网 发布:腰部赘肉 知乎 编辑:程序博客网 时间:2024/06/10 08:20
修改fitnesse源码,使得页面的table中实例化的类分配到自定义的变量中
只需要修改源码工程中的2个类方法
1. 需要修改fitnesse.testsystems.slim.tables.Disgracer类中的disgraceName()方法
private String disgraceName() { disgracedName = new StringBuffer(); /** * add by yefengsong * 使分隔符能正常使用 */ if(name.contains("->")){ return name; } for (char c : name.toCharArray()) { appendCharInProperCase(c); } return disgracedName.toString();}
2. 需要修改fitnesse.slim.SlimExecutionContext类中的create()
public void create(String instanceName, String className, Object[] args) throws SlimError, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException { String custom_instance_name = null; /** * add by yefengsong * 通过分隔符->分别获取到实例名和类名 */ if(className.contains("->")){ String arr[] = className.split("->"); custom_instance_name = arr[0].trim(); className = arr[1].trim(); } Object potentialActor = variables.getStored(className); if (potentialActor != null && !(potentialActor instanceof String)) { addToInstancesOrLibrary(instanceName, potentialActor); } else { String replacedClassName = variables .replaceSymbolsInString(className); Object instance = interaction.createInstance(paths, replacedClassName, replaceSymbols(args)); /** * add by yefengsong * 类实例绑定自定义变量 */ setVariable(custom_instance_name,instance); addToInstancesOrLibrary(instanceName, instance); }}
修改后验证代码作用, 假设有java代码如下
public class A { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}
public class B { private A a; private int c; public A getA() { return a; } public void setA(A a) { this.a = a; } public int getC() { return c; } public void setC(int c) { this.c = c; }}
对应的fitnesse wiki(DecisionTable)脚本如下:
|import ||com.quark.test||a -> A||name ||测试 ||b -> B||a ||$a ||script|json util ||show |toJsonString|$b|
执行结果:
importcom.quark.testa -> Aname测试
b -> Ba$a
scriptjson utilshowtoJsonString$b{"a":{"name":"测试"},"c":0}
阅读全文
1 0
- 修改fitnesse源码->自定义页面脚本中各种Table(ScriptTable,DecisionTable)的类实例变量
- Fitnesse slim框架的DecisionTable类自动保存实例变量到fitnesse变量存储中
- Fitnesse 之 Script Table
- 织梦DEDECMS系统中自定义变量的修改方法
- 创建一个类的实例,修改类中定义为private的变量的值
- fitnesse使用中遇到的问题
- jsp页面中Table表格首列合并同类项的脚本调用方法
- fitnesse页面增加认证
- Fitnesse 测试框架实例
- fitnesse源码导入eclispe
- 批量下载matplotlib.pyplot.subplots页面实例源码的python脚本
- Java 中类变量与实例变量的区别
- java中类变量和实例变量的实质区别?
- java中实例变量和类变量的区别
- bootstrap table 中自定义修改和删除操作
- shell 脚本中循环未能修改循环外变量的问题解决
- lua中类的属性是table时,多个类的实例使用了同一个table属性
- ThinkPHP中自定义错误页面和提示页面实例
- ubuntu 16.04安装 sublime text 汉化 输入法
- Pycharm教程(4)——有关Python解释器的相关配置
- Ubuntu 启动桌面失败
- 使用GitLab版本管理工具教程
- VPS安装开启TCP BBR提速工具
- 修改fitnesse源码->自定义页面脚本中各种Table(ScriptTable,DecisionTable)的类实例变量
- java中static关键字的用法
- 封装dpdk接口成静(动)态库(同源同宿、多通道队列收包),然后在C++应用中使用方法
- 使用storm处理消息队列中的日志信息遇见的错误
- Java注释@interface的用法
- win 10 安装robomongo(studio 3T)
- c语言之常量指针与指针常量
- 微信分享调用JS -- c#篇
- 容器技术如何改变游戏服务器托管行业