[英]how do i pass program arguments in java for my Fitnesse Fixture?
[英]How to pass Java null strings to Fitnesse
遵循Fitnesse TestBlankAndNullCells文档,我尝试将空字段传递到验证表中。 我的数据类型是字符串。
当我将该字段留空时,会有一个红色实心框,没有任何信息。 当我尝试添加“ null”时,实际为空。 使用“空白”出现相同的问题。 我想念什么吗?
这里有更多文档,其中指出关键字“ blank”或“ null”是必需的。 我能够手动返回实际的字符串“ null”,当期望的字符串也是文字“ null”时也可以使用,但是我希望找到一种更干净的解决方案,在其中可以传递null字段。
根据Fitnessf论坛上的这个问题 ,看起来字符串以空值被不同地对待。
在Java世界中,“经典”固定装置(例如ColumnFixture)和Rick开发的FitLibrary固定装置之间在处理null的方式上存在一些差异。 我的猜测是经典灯具支持'null'关键字,但FitLibrary不支持。
在.NET世界中,所有装置都支持'null'关键字。
浏览Fitfite论坛后,我直接从Fit的开发人员之一Rick Mugridge找到了解决方案:
public String findString(String s) {
if ("".equals(s))
return null;
return s;
}
}
我将其包含在ArrayFixture中,并且有效! 以下是Rick信息中的一些有趣的观点:
当为第二个表调用myList()方法时,FitLibrary会自动使用SetFixture对其进行包装(因为返回的值是Set)。 在检查每个String类型的名称元素时,它确定存在一个正确类型的findString()方法,因此调用它以解析名称列中单元格的值。 该方法将空字符串转换为null,以便它与null的实际值正确匹配。
对于任何类型T,FitLibrary都会检查方法public Object findT(String s)。 它调用它以解析表单元格中的String值。 这可以以多种方式使用。
如果需要,SetFixture,ArrayFixture等将访问私有实例变量(例如,没有吸气剂)
数组,列表,地图,集合和其他对象都通过适当的夹具自动包装在流程中
当DoFixture中的第一个灯具发生流动时(在下一版本中,DoFixture不必是发生流动的第一个灯具;它稍后才开始。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.