javaalgorithmscalagroovystub-data-generation

Examples for creating stub data structures with dynamic JVM Languages?


Over the years, I think I have seen and tried every conceivable way of generating stub data structures (fake data) for complex object graphs. It always gets hairy in java.

   *    *    *    *
A---B----C----D----E

(Pardon cheap UML)

The key issue is that there are certain relationships between the values, so a certain instance of C may imply given values for E.

Any attempt I have seen at applying a single pattern or group of pattens to solve this problem in java ultimately end up being messy.

I am considering if groovy or any of the dynamic vm languages can do a better job. It should be possible to do things significantly simpler with closures.

Anyone have any references/examples of this problem solved nicely with (preferably) groovy or scala ?

Edit: I did not know "Object Mother" was the name of the pattern, but it's the one I'm having troubles with: When the object structure to be generated by the Object Mother is sufficiently complex, you'll always end up with a fairly complex internal structure inside the Object Mother itself (or by composing multiple Object Mothers). Given a sufficiently large target structure (Say 30 classes), finding structured ways to implement the object mother(s) is really hard. Now that I know the name of the pattern i can google it better though ;)


Solution

  • You might find the Object Mother pattern to be useful. I've used this on my current Groovy/Grails project to help me create example data.

    It's not groovy specific, but a dynamic language can often make it easier to create something like this using duck typing and closures.