測試演算法
現成測試演算法如下:
演算法
描述
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
若有兩項或兩項以上的比較項目,若所有比較項目均傳回 TURE,演算法即會傳回 TRUE;否則會傳回 FALSE。
wt.rule.algorithm.OrTest
若有兩項或兩項以上的比較項目,若有任何比較項目傳回 TURE,演算法即會傳回 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 標籤都要計算,所有計算結果必須皆為 True,AndTest 結果才會是 TRUE。
OrTest 演算法語法由多個巢狀式 Value 標籤組成,每一個 Value 標籤都要計算,至少一個計算結果必須為 True,OrTest 演算法結果才會是 TRUE。
一般而言,AndTest 或 OrTest 演算法內使用的 Value 標籤都含有其他條件式邏輯演算法。
這是否有幫助?