修改文件: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();
}
}
}

使用例子:

给Fitnesse添加调用多参数fixture的调用方法的更多相关文章

  1. setTimeout调用带参数的函数的方法

    function test(s){    alert(s);}window.setTimeout(function(){test('str');},1000);这样就可以了...为什么是这样呢.因为s ...

  2. pytest动态添加命令行参数并获取(钩子函数:pytest_addoption)

    考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...

  3. addEventListener调用带参数函数

    当传递参数值时,使用"匿名函数"调用带参数的函数: <body> <button id="btn">click me</butto ...

  4. Java程序调用带参数的shell脚本返回值

    Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量(\(#,\)@,$0,$1,\(2)的含义解释 变量说明: -  \)$  Shell本身的PID(ProcessI ...

  5. handlerAdapter与方法调用(参数的解析)

    前提:当找到handler以后,那么就要让handler发挥作用,这个时候handlerAdapter就派上用场了 这里面比较复杂就是requestMappingHandlerAdapter了,其他的 ...

  6. WebApi接口安全性 接口权限调用、参数防篡改防止恶意调用

    背景介绍 最近使用WebApi开发一套对外接口,主要是数据的外送以及结果回传,接口没什么难度,采用WebApi+EF的架构简单创建一个模板工程,使用template生成一套WebApi接口,去掉put ...

  7. 多线程调用有参数的方法---c# Thread 与 Task

    C#实现多线程的方式:Task——任务   简介 .NET 4包含新名称空间System.Threading.Tasks,它 包含的类抽象出了线程功能. 在后台使用ThreadPool. 任务表示应完 ...

  8. Python趣味入门9:函数是你走过的套路,详解函数、调用、参数及返回值

    1.概念 琼恩·雪诺当上守夜人的司令后,为训练士兵对付僵尸兵团,把成功斩杀僵尸的一系列动作编排成了"葵花宝典剑法",这就是函数.相似,在计算机世界,一系列前后连续的计算机语句组合在 ...

  9. 给定时器settimeout、setInterval调用传递参数

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在 许多场合必须要带参数,这就需要想方法解决.例如对于函数hello(_na ...

随机推荐

  1. 在linux通过源码编译安装redis详细步骤

    1.下载源码包 [root@localhost opt]# wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2.解压缩redis ...

  2. 认识影片版本(CAM、TS、TC、DVD、HD、BD、TVRIP等)

    许多朋友在下载电影的时候, 往往会被各种各样的版本标识弄糊涂,今天把各种版本的缩写收集在一起,希望对大家有所帮助 . 引用: 1.CAM(枪版)    CAM 通常是用数码摄像机从电影院盗录.有时会使 ...

  3. mysql 二:操作表

    的存储.在操作表之前,首先要用选定数据库,因为表都是建立在对应的数据库里面的.在这里我们使用之前建立的test数据库 mysql> use test; Database changed 创建表的 ...

  4. OSGI简介(转)

    原文地址 目前,业内关于OSGI技术的学习资源或者技术文档还是很少的.我在某宝网搜索了一下“OSGI”的书籍,结果倒是有,但是种类少的可怜,而且几乎没有人购买.因为工作的原因我需要学习OSGI,所以我 ...

  5. web 全栈 学习 2 一个好的页面是如何炼成的

    第一章:Web页面内容的构成2.Web内容的分工一个Web页面可能的构成(视觉上看):①文字.链接.标题②交互入口(表单元素)③图片(哪些类型)④动画 Flash动画 HTML5 CSS3 动画⑤音视 ...

  6. 《锋利的jQuery》打造个性网站整合

    搜索框文字效果 网页换肤 导航效果 广告效果 添加超链接提示 产品横向滚动效果 光标滑动列表效果 产品详细页面效果(放大镜,遮罩,选项卡,评分等) 1.搜索框文字效果 <!DOCTYPE htm ...

  7. American Heritage usaco

    基础题,主要思路是找到根,然后分别递归即可: #include<iostream> #include<cstring> #include<string> #incl ...

  8. IDEAL葵花宝典:java代码开发规范插件:GsonFormat插件将JSONObject格式的String 解析成实体

    前言: GsonFormat插件主要用于使用Gson库将JSONObject格式的String 解析成实体,该插件可以加快开发进度,使用非常方便,效率高. 这个教程主要是学习IntelliJ IDEA ...

  9. lucene内置的评分函数

    For multiterm queries, Lucene takes the Boolean model, TF/IDF, and the vector space model and combin ...

  10. python基础-正则1

    什么是正则表达式? 正则表达式是一种小型的\高度专业化的变成语言,主要用于字符串处理 正则表达式是一种通用语言,在python中通过re模块实现,import re 工具:在线正则表达式测试 http ...