You can create list assertions for page lists on a rule to determine if either the
expected result is anywhere in the list of results returned by the rule. Even if the order of
results changes, the test will continue to work.
For example, you can verify if a product is present in a product list in a data page, regardless of where the product appears in the list results. You can also verify if there is at least one employee with the name John in the results of the Employee list data page.
You can also configure assertions for page lists to apply assertions to all the results that
are returned by a rule so that you do not have to manually create assertions for each result
in the list.
For example, you can verify that a department name is Sales and that a department ID starts with SL for each department in the list of results in the Sales department data page. You can also verify if a discount of 10% is applied to each customer in the list of results of the VIP customers data page.
You can configure list assertions for page lists on a rule to apply assertions to all the
results that are returned by the rule. Configure an ordered list assertion so that you do
not have to manually create assertions for each result in the list.
-
Open the Pega unit test case if it is not already open.
-
Complete one of the following actions:
- To add a new assertion, click Add expected result at the
bottom of the page.
- Modify an existing assertion in the pane.
-
From the Assertion type list, select
List.
-
Add properties to the assertion.
-
Click Add properties.
-
If you are adding properties for flows, case types, decision trees, decision
tables, or data pages:
-
In the of object field, enter the path of the object
with which the properties are compared during the assertion.
-
Proceed to step d.
-
If you are adding properties for data transforms or activities, complete the
following tasks:
-
From the Thread list in the Actual
results section, select the thread that contains the page whose
properties or pages you want to add.
-
In the Page field, enter the page whose properties or
pages you want to add.
-
In the of object field, enter the path of the object
with which the properties are compared during the assertion.
-
Proceed to step d.
-
Select the properties or pages that you want to add. You can search for a property
or its value by entering text in the search bar and pressing
Enter.
If you select a page, all embedded pages and properties from the page are added.
Added properties are displayed in the right pane.
When you add multiple properties, the assertion passes if the expected output
and results match for all properties.
- Optional:
In the Filter field, enter a property and value on which to
filter results or open the Expression Builder by clicking the Gear
icon to provide an expression that is used to filter results. The list assertion applies
only to the page list entries that are specified for this filter value.
-
From the Comparator list, select the comparator that you want to
use to compare the property with a specified value.
You can use the is in comparator to compare a text, integer, or decimal
property to multiple values so that the assertion passes if the property matches any of the
values that you specify. You can also use the is not in comparator so that the assertion passes
if the property does not match any of the values that you specify.
-
In the Value field, either enter a value with which to compare
the property or open the Expression Builder by clicking the Gear
icon to enter an expression that is used to provide the value.
Note: The Gear icon is not displayed until after you have saved
the rule form.
-
To add a comment, click the Add comment icon, enter a comment,
and click OK.
-
Click Done.
-
Click Save in the rule form.
Result:
When you run the test case, the system searches for the specified properties in the page
list. One of the following occurs:
-
If you selected In ANY Instance, the assertion passes if all
the properties in the set match the expected values in the page list. If none of the
properties match any of the values in the page list, the assertion does not pass.
-
If you selected In ALL instances, the assertion passes if all
the properties in the set match the expected values in every entry in the page list. If
any of the properties do not match any entry in the page list, the assertion does not
pass.