Linked Generators is a very powerful GenRocket feature because linked Generators are able to directly reference each other within an Attribute as opposed to indirectly accessing another Domain's Attribute to get its Generated value. Thus, linking Generators to each other within an Attribute provides the ability to generate complex conditioned test data without the necessity of having to access another Attribute's generated value. This also means that Attributes may reference other Attributes that generate complex test data via linked Generators, thus yielding even more complex, conditioned test data.
How Linked Generators Work
- Linked Generators generate their data in a left to right sequence. This means that within a set of linked Generators, the leftmost Generator is generated first, the second to the leftmost Generator is generated second, the third leftmost Generator is generated third and so on.
- Linked Generator Referencing
- Linked Generators can only reference sibling linked Generators that are positioned to the left of their position within the set of linked Generators. Referencing Generators to their right will yield null values because Generators linked to their right have not yet Generated their data.
- Domain Attribute Referencing
- Within its given Domain, linked Generators may reference any of its left sibling Attributes to attain a generated value.
- Scenario Domain Attribute Referencing
- Within its given Scenario Domain, linked Generators may reference any of its left sibling Attributes to attain a generated value.
- Within its given Scenario, linked Generators may reference any of its sibling Scenario Domain's Attributes to attain a generated value.
- Within its given Scenario, linked Generators may reference its Parent Scenario Domain's Attributes to attain a generated value.
- Returning a Result
- Within the set of linked Generators, the right most Generator contains the generated value that is returned for the given Attribute.
Linked Generator Types
When GenRocket Generators are linked together, each Generator falls within one of three linked generator types:
- Eval-Linked Generator - It's generated value will be referenced and evaluated by one or more Mid-Linked and or a Final-Linked Generator.
- Mid-Linked Generator - References one or more Eval-Linked Generators to generate a mid-linked result and may be evaluated by one or more Mid-Linked or a Final-Linked Generator.
- Final-Linked Generator - References one or more Eval-Linked or Mid-Linked Generators to generate a final result.
Linked Generator Design Patterns
There are specific GenRocket Generators that may be used as Final-Linked Generators; each of these final-linked Generators presents its own design pattern to enable complex test data generation.
- Linked CaseActionGen Design Pattern
- Linked ConcatGen Design Pattern
- Linked MultiWeightGen Design Pattern
- Linked SwitchGen Design Pattern