In reply to chr_sue:
Suppose you want to run one test with value < 100 and another with value > 100. You could have two sequence_items and use the factory to override the sequence_item type and then have one sequence to generate the items. This would let you have a base test that starts the sequence and an extended test that just overrides the sequence_item type and uses super.run to execute the same sequence.
Or you could have two sequences, each of which randomizes the sequence_item using a ‘with’ clause. Then you could have two tests, each of which runs one sequence. If you make one sequence an extension of the other (ie overriding the body() method), then you could still have a base test and an extended test to override the sequence type.
Personally, I’m not a big fan of randomize-with when I can use the factory override. The override is particularly useful when you have multiple fields and multiple constraints that you may want to override.