繁体   English   中英

如何将Java空字符串传递给Fitnesse

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM