Unified UI components testing approach in a cloud platform via façade pattern system and method
Systems and methods are provided for centralized and hierarchical testing of user interface (UI) components are disclosed. The system includes a base test class configured to dynamically manage and execute test cases by initializing with a selector to identify target components in a Document Object Model (DOM). Test cases are registered using an addCase method, which aggregates test cases at a topmost parent instance for centralized storage. A wrapper is created for the target component, enabling dynamic test execution and validation using a reusable facade library. The system enables test isolation by destroying the wrapper after execution. Component-specific subclasses extend the base test class to validate UI component parameters, including visibility, events, column data, and pagination. Methods and instructions stored on a non-transitory computer-readable medium enable dynamic instantiation, test propagation, and execution, ensuring scalable and reusable testing workflows.
1 . A system for reusable testing of user interface (UI) components, the system comprising: a memory storing instructions; and a processor coupled to the memory, wherein execution of the instructions causes the processor to:
initialize a base test class with a selector for identifying a target component in a Document Object Model (DOM);
register a test case dynamically using an addCase method, the test case comprising a test function and an optional search condition;
aggregate the registered test case to a topmost parent instance of the base test class;
execute the test case by creating a wrapper for the target component;
perform test logic on the wrapper using the registered test function,
wherein the base test class is further configured to propagate the test cases to a topmost parent instance for centralized execution.
2 . The system of claim 1 , wherein the addCase method is configured to register a test case with a test name, a test function, and an optional search condition.
3 . The system of claim 1 , further comprising a wrapper interface coupled to the base test class, the wrapper interface configured to dynamically instantiate test components and interact with the DOM through a findCustom method.
4 . The system of claim 1 , further comprising a facade library configured to store reusable facade classes, the reusable facade classes wrapping core test logic into reusable functions for testing UI components.
5 . The system of claim 1 , wherein the base test class includes an execution method to enable test isolation by destroying the wrapper after test execution.
6 . The system of claim 1 , further comprising a component-specific test subclass inherited from the base test class, wherein the component-specific test subclass is configured to implement testing logic for a UI component.
7 . The system of claim 6 , wherein the component-specific subclass is configured to validate parameters of a UI component, including at least one of visibility, event interactions, column data, row states, or pagination functionality.
8 . A computer-implemented method for centralized and hierarchical testing of user interface (UI) components, the method comprising:
initializing a base test class with a selector for identifying a target component in a Document Object Model (DOM);
registering a test case dynamically using an addCase method, the test case comprising a test function and an optional search condition;
aggregating the registered test case to a topmost parent instance of the base test class;
executing the test case by creating a wrapper for the target component;
performing test logic on the wrapper using the registered test function.
9 . The method of claim 8 , further comprising propagating registered test cases through a saveTest method that centralizes test storage at the topmost parent instance.
10 . The method of claim 8 , further comprising dynamically locating and wrapping a specific test component using a findCustom method integrated with a wrapper interface.
11 . The method of claim 8 , further comprising executing multiple test cases sequentially by iterating through a centralized test pool stored in the base test class.
12 . The method of claim 8 , further comprising defining a component-specific test subclass inherited from the base test class, wherein the subclass implements methods for validating component-specific behavior.
13 . The method of claim 12 , wherein the component-specific test subclass is configured to perform at least one of: checking component visibility, triggering events, validating column or row data, or verifying pagination states.
14 . The method of claim 8 , further comprising dynamically generating a wrapper using a selector and executing test functions through the wrapper integrated with a testing framework.
15 . The method of claim 8 , further comprising centralizing reusable test logic into a facade library, the facade library configured to wrap testing operations into reusable methods.
16 . A non-transitory tangible computer-readable device having instructions stored thereon that, when executed by a computing device, cause the computing device to perform operations comprising:
initializing a base test class with a selector for identifying a target component in a Document Object Model (DOM);
dynamically registering a test case using an addCase method, the test case comprising a test name, a test function, and an optional search condition;
aggregating registered test cases to a centralized test pool at a topmost parent instance of the base test class;
executing the registered test cases by creating a wrapper for the target component using the selector;
performing a test function dynamically on the wrapper.
17 . The non-transitory computer-readable device of claim 16 , wherein the instructions further cause the computing device to dynamically locate and instantiate a specific test component using a findCustom method integrated with a wrapper interface.
18 . The non-transitory computer-readable device of claim 16 , wherein the instructions further cause the computing device to execute test cases sequentially by iterating through the aggregated test pool stored in the base test class.
19 . The non-transitory computer-readable device of claim 16 , wherein the instructions further cause the computing device to implement a component-specific test subclass inherited from the base test class, the subclass configured to validate component-specific parameters including visibility, event triggers, or table row states.
20 . The non-transitory computer-readable device of claim 16 , wherein the instructions further cause the computing device to propagate registered test cases to the topmost parent instance using a saveTest method for centralized execution.