给Fitnesse添加调用多参数fixture的调用方法
2024-08-29 01:27:44
修改文件:fitnesse.slim.fixtureInteraction.DefaultInteraction.java
修改如下三处内容:
(注意只支持仅含有一个参数,且该参数是多参数的fixture)
protected Method findMatchingMethod(String methodName, Class<?> k, int nArgs) {
Method[] methods = k.getMethods();
if(methods == null) {
methods = k.getMethods();
} for (Method method : methods) {
boolean hasMatchingName = method.getName().equals(methodName);
if(hasMatchingName && method.isVarArgs()){
return method;
}
boolean hasMatchingArguments = method.getParameterTypes().length == nArgs;
if (hasMatchingName && hasMatchingArguments) {
return method;
}
}
return null;
}
protected Object[] convertArgs(Method method, Object[] args) {
Type[] argumentParameterTypes=null;
if(method.isVarArgs()){
return args;
}else{
argumentParameterTypes = method.getGenericParameterTypes();
}
return ConverterSupport.convertArgs(args, argumentParameterTypes);
}
public Object methodInvoke(Method method, Object instance, Object... convertedArgs) throws Throwable {
try {
if(method.isVarArgs()){
String[] s = new String[convertedArgs.length];
int i =0;
for(Object arg:convertedArgs){
s[i]=arg.toString();
i++;
}
return method.invoke(instance, (Object)s);
}else{
return method.invoke(instance, convertedArgs);
} } catch (InvocationTargetException e) {
if(e.getCause() != null){
throw e.getCause();
}else{
throw e.getTargetException();
}
}
}
使用例子:
最新文章
- git安装及命令使用和github网站
- xml解析模块
- Spring3系列8- Spring 自动装配 Bean
- 50个提高PHP编程效率的方法
- VirtualBox 虚拟 Ubuntu 的一些感想
- 关于linux软连接
- asp.net获取select值的方法
- Composer 基本指令操作使用
- HDFS之RPC机制
- 使用@Autowird注入报空指针异常
- String,StringBuilder,StringBuffer区别
- [转]RJ45接口说明
- spring Boot 上传文件,10天后,不能上传的bug
- Unity&;UGUI
- 罗伯特•盖洛博士(Dr. Robert Charles Gallo)是世界著名的美国生物医学家,他以共同发现了人类免疫缺陷病毒(HIV)――这一导致获得性免疫缺陷综合症(AIDS)的致病源而闻名于世。
- Appium 安装详细版教程
- Pytorch多进程最佳实践
- (转)NGUI研究院之三种方式监听NGUI的事件方法
- Tasker 中文版(4.6u2)
- iOS:沙盒、偏好设置、归档、解归档
热门文章
- /etc/init.d/iptables stop
- coreseek中文搜索
- 我的Android进阶之旅------>Android中MediaButtonReceiver广播监听器的机制分析
- PAT天梯赛 L2-002. 链表去重 【STL】
- IO多路复用之Reactor模式
- Ubuntu/CentOS下使用脚本自动安装 Docker
- Makefile中的$(@:_config=)什么意思?【转】
- 算法(Algorithms)第4版 练习 1.3.9
- 算法(Algorithms)第4版 练习 1.3.23 1.3.22
- 2048聚合版开源代码,cocos2d-js编写,基于CocosEditor开发工具,可运行Android,ios,html5等