测试人员
对一个特性进行一个或多个测试,并根据测试结果路由该特性。测试可以包含任何fme允许的操作数。
输入端口
这个转换器接受任何特性。
输出端口
如果测试通过,则通过通过了端口。
如果测试失败,则通过失败的端口。
注意,您可以将几个测试合并到一个单独的测试转换器中,并且可以将这些特性路由到通过了根据通过标准在下面。
参数
的通过标准定义在传入特性的最终分类中如何解释多个子句。可能的选择是:所有测试(AND),一个测试(OR),综合测试。
以下是对这三种选择以及相关场景的描述。
脚本 | 通过标准 | 描述 |
---|---|---|
是所必需的输入特性的一种测试它被传递到分类。 | 一个测试(OR) | 在这种情况下,只要其中一个测试子句是真的,就可以传递该特性。这是一个或测试(test1、test2或test3)。如果有一个是真的,那么结果就是真的。 |
所有测试都要求输入特性分类为通过。 | 所有测试(AND) | 这比一个测试(或)更严格,因为所有测试都必须通过才能使结果为真(test1、test2和test3)。 |
创建自己的测试表达式。 当您需要对希望测试人员评估的内容进行细粒度控制时,这非常有用。如果选择此模式,将显示一个复合表达式字段。 |
综合测试 | 例如,如果要检查属性值是否在5到10之间,或是否等于99,可以设置三个测试子句: 第1条:X>5 第2条:X<10 第3条:X=99 (其中x是左侧值字段中的选定属性): 要正确获得所需的结果,您需要子句1和子句2为true(介于5和10之间),或者子句3为true(等于99)。 在这种情况下,选择一个测试或所有测试模式将不能满足测试要求。但是,可以选择“组合测试”,然后在“组合表达式”字段中输入以下表达式: (1和2)或3) 上面的数字对应于“测试子句”表中定义的测试子句。阅读时,上面的复合表达式说明“必须满足第1条和第2条,或者必须满足第3条”。 |
要使用的表达式通过标准参数是综合测试。表达式可以引用来自。的子句测试条款使用该子句的行号的表。
值
的值列(操作数)可以是一个文字常量、一个属性的值、一个已发布的参数或一个以上组合的计算值。如果它是一个计算过的函数,那么该函数将在当前特性上执行,结果将用于测试。
运营商
的操作者其中:=,!=,<,>,<=,>=,在,在范围内,喜欢,包含正则表达式,包含,开始于,以。。结束,类型是,在可编码,属性有一个值,属性为null,属性为空字符串,属性缺失。
有些操作符(如=和!=)具有常规的行为,但这里记录的除外。当比较操作符=、!=、<、>、<=、>=应用到null、missing和空字符串值时,这三个操作符的值都是空字符串。因此,在这些比较运算符的上下文中,它们是成对相等的。此外,以下比较顺序是尊重的:
Null、missing、空字符串< numbers < other值
运营商喜欢,包含,开始于,以。。结束不区分大小写。其他操作符是区分大小写的。
其他不太传统的操作符在这里有更详细的描述:
操作者 |
描述 |
例子 |
---|---|---|
在 | 测试某个值的值的列表。右边的值是逗号分隔的值列表或范围。 | x=5,如果x在1,2,3中(否=失败) x=5,如果x在3-7中(是=通过) |
在范围内 | 该值是否在用集合表示法指定的数值范围内? 在此符号中,[]s表示包含边界,即[0,8]对应于0<=x<=8。而()s表示排他界限,即(0,8)对应于0
|
X=3,如果X在[3,8]范围内(是=通过) x=3,如果x在范围内(3,8)(否=失败) |
喜欢 | 允许您使用通配符查询。请注意,通配符查询使用百分比符号(%),而不是星号(*)。 此运算符不区分大小写。 此运算符在数字模式下不可用。 |
X=ABCD,如果X喜欢%BC%(是=通过) |
包含正则表达式 |
值是否包含正则表达式? 此运算符在数字模式下不可用。 |
x=abcd,如果x包含regex.*bc.* |
包含 | 右值是否出现在左值中? 此运算符不区分大小写。 此运算符在数字模式下不可用。 |
X=ABCD,如果X包含BC(是=通过) |
开始于 | 字符串是以这个开始的吗…? 此运算符不区分大小写。 此运算符在数字模式下不可用。 |
X=ABCD,如果X以A开头(是=通过) X=ABCD,如果X以B开头(否=失败) |
以。。结束 | 一根绳子以这个…结尾吗? 此运算符不区分大小写。 此运算符在数字模式下不可用。 |
X=ABCD,如果X以D结尾(是=通过) X=ABCD,如果X以B结尾(否=失败) |
类型是 | 属性的值是否可以转换为列出的类型之一? 包括整数、双精度、数字和布尔类型。如果选择了多个类型,则可以选择多个类型。如果某个要素可以转换为列出的一个或多个类型,则该要素将快速转换。整数和双精度类型分别测试属性的内容是否可以表示为整数或浮点数。数值测试值是否可以转换为数字(行为与double相同)。布尔测试字符串是否与布尔表示之一匹配(true、true、true、1、false、false、false、0) |
x=7,如果x是数字(是=通过) x=true,如果x是booelan(yes=passed) |
在可编码 | 指定属性的值是否可以在指定的编码中编码而不丢失数据? | 如果x=本如果x编码cp932通过日语窗口 如果编码dos icelandic失败 |
属性有一个值 | 属性是否有值? | 如果“left value”中指定的属性匹配(yes=passed) |
属性为null | 指定的属性是否有空值? 此运算符在数字模式下不可用。 |
如果在“left value”中指定的属性具有空值(yes=passed) 如果在“left value”中指定的属性没有空值(no=失败) |
属性为空字符串 | 指定的属性是否具有空字符串值? 此运算符在数字模式下不可用。 |
如果在“left value”中指定的属性是空字符串(yes=passed) 如果“left value”中指定的属性不是空字符串(否=失败) |
属性缺失 | 功能上是否缺少指定的属性? 此运算符在数字模式下不可用。 |
如果在“left value”中指定的属性在功能上不存在(yes=passed) 如果在“左值”中指定的属性存在于功能上(否=失败) |
如果您选择其中一个操作符:属性为空字符串,属性为null,或属性缺失,左值将被视为一个属性名,而不考虑所显示的图标。要强制测试人员使用属性的值,attrName作为属性名,必须显式键入@value(attrName)到左值字段。
字符串(即范围。广告)也可以指定。如果要测试包含连字符的值,则应该用引号括起这些值。例如,如果X = LL-27,然后X在 “LL-27”, “LL-83”会是真的。另一方面,X在LL-27,LL-83会是假的。这是因为LL-27和LL-83将其视为两个空字符串范围,因为将数字视为字符串时,其排序要早于字母。
否定
复选框,指示如果“
例如,
X=abcd,是'abcde'包含X如果否定(答案不=失败的)
X=5, Y=1,2,3,4是X在Y中的值(答案是yes =)通过了)
模式
当模式被设置为自动或数字如果可能,测试人员将操作数作为数字进行比较,否则将其作为字符串进行比较。
当模式被设置为字符串,测试人员将操作数作为字符串进行比较,并且不会尝试数值转换。
让我们引用可以解释为数字的字符串,如“4E5,作为字母数字字符串。For an alphanumeric string, if you set模式来自动或数字,如果另一个操作数也是字母数字字符串,则该操作数将被视为数字,而且所使用的操作符在数字模式。
例如,如果模式被设置为自动或数字”,4E5 = 400000将通过测试。另一方面,如果你想4E5 = 400000“要想考试不及格,就得准备模式来字符串。
例子
属性 | 测试条件 | 结果 |
---|---|---|
X = ABCD | X包含ABCD | 通过了 |
X = A,Y =大 | X在该Y | 失败的 |
X = 100 | X <200 | 通过了 |
X = 4E5 | X = 400000 | 过去,如果模式设置为自动 失败,如果模式设为字符串 |
的例子模式可以设置为自动或数字:
@Area () < 100
@ value (numLanes) > 2
例子模式可以设置为字符串:
“乔”=“杰瑞”
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
变压器的历史
这个转换器取代了AttributeTester和GenericTester转换器。
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。
标签关键词:AttributeTester“比较模式”GenericTester“通过标准”“测试子句”