测试算法
预置的测试算法如下:
算法
说明
wt.rule.algorithm.EqualsTest
给出两个对象,确定是否一样。此为对象间比较。
如果匹配返回 TRUE;否则返回 FALSE。
wt.rule.algorithm.StringEqualsTest
给出一个属性和值,确定是否一样。比较之前,算法使用 toString() 将所有对象强制转换为字符串。这种字符串之间的比较不区分大小写。
如果匹配返回 TRUE;否则返回 FALSE。
wt.rule.algorithm.StringRegExEqualsTest
如果指定属性和值 (值中带有 \u201c*\u201d),则使用正则表达式相关概念来确定是否相等。此算法使用正则表达式匹配的 java.util.regex 实施。该算法会在进行比较之前使用 toString() 强制第一个 Arg 标记值变为字符串。
如果其找到匹配并且匹配是整个字符串自变量,则返回 TRUE。
wt.rule.algorithm.IfNullTest
给出属性的值,确定该值是否为空值。
如果第一个自变量为空值则返回 TRUE;否则返回 FALSE。
要返回空值,请使用 wt.rule.algorithm.GetNullValue 算法。
wt.rule.algorithm.IfNotNullTest
给出属性的值,确定该值是否为非空值。
如果第一个自变量不是空值则返回 TRUE;否则返回 FALSE。
要返回空值,请使用 wt.rule.algorithm.GetNullValue 算法。
com.ptc.core.rule.server.impl.IfContainerTypeEqualsProjectTest
给出对象所在的上下文,确定该上下文是否为 wt.projmgmt.admin.Project2 上下文。
如果此上下文是一个属于 wt.projmgmt.admin.Project2 类或者 Project2 类的子类或子类型的实例,则返回 TRUE;否则返回 FALSE。
如果上下文是项目上下文或者是项目群上下文,则该算法返回 TRUE。
wt.rule.algorithm.AndTest
进行两次或多次比较后,如果所有比较均返回 true,则返回 TRUE;否则返回 FALSE。
wt.rule.algorithm.OrTest
进行两次或多次比较,如果任意某个比较返回 true,则返回 TRUE;否则返回 FALSE。
wt.rule.algorithm.StringInListTest
采用值的列表,并测试 Attr 标记中定义的第一个值是否等于列表内在 Arg 标记中定义的任何其他项。进行比较之前,算法使用 toString() 强制所有对象转换为字符串。
如果匹配返回 TRUE;否则返回 FALSE。
com.ptc.windchill.enterprise.impl.OrgNameEqualsTest
给定拥有组织参与者的名称 (指存储在 organization.id 属性中的值) 和用来命名组织的字符串,如果 organization.id 属性的值与字符串相同,则返回 TRUE,否则返回 FALSE。有关详细信息,请参阅拥有组织参与者
使用 EqualsTest、StringEqualsTest 和 StringRegExEqualsTest 算法的通用语法是:
<Value algorithm="wt.rule.algorithm.xxxEqualsTest">
<Attr id="aaa"/>
<Arg>bbb</Arg>
</Value>
在此语法中,待评估的属性在 Attr 标记中指定,其字符串值在 Arg 标记中指定。在此语法以及随后说明的其他语法中,值无需是字符串;值可以使用其他算法生成。例如,下列 XML 可用于测试 Null 值:
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="name"/>
<Value algorithm="wt.rule.algorithm.GetNullValue"/>
</Value>
StringInList 算法的通用语法构建于之前的语法之上:
<Value algorithm="wt.rule.algorithm.StringInList">
<Attr id="aaa"/>
<Arg>bbb</Arg>
<Arg>ccc</Arg>
<Arg>ddd</Arg>
<Arg>eee</Arg>
:
</Value>
用此语法作为指南,为列表中第一项 (在 Attr 标记中定义) 之后的每一项指定一个 Arg 标记。
AndTest 算法的语法由多个嵌套的 Value 标记组成,其中,会对每个 Value 标记进行评估,所有评估结果必须都为真,AndTest 的结果才为 TRUE。
OrTest 算法的语法由多个嵌套的 Value 标记组成,其中,会对每个 Value 标记进行评估,必须至少有一个评估结果为真,OrTest 的结果才为 TRUE。
通常,AndTest 或 OrTest 算法中使用的 Value 标记还包含其他条件逻辑算法。
这对您有帮助吗?