Robert Feldt <feldt / ce.chalmers.se> writes: > You have a point there but I'm still surprised why you don't suggest > code generation. To be specific in the ruby extension for Random number > generation we're working on we don't know (at the time of writing the > tests) what parameters to RandomNumberGenerator are valid (currently you > have a choice of 33 different RNG algorithms stored in > Random::RngAlgorithms but that changes as we add/subtract new/bad algs). > So it's pretty simple to generate the code for the test classes you > suggested previously. True - in this particular case, where (presumably) the constructors all look alike, then you could have a single test driver that used this array of names (or whatever) to build and run yours tests. If there was a regular pattern like this, I probably would use some form of automatically generated list. For just three cases, I probably wouldn't unless it was a real pain setting the tests up. > However, in a general case the parameters to a class might be arbitrarily > complex (involving large parse trees or what-have-you) so people would > probably need a way to dynamically parameterize TestCase-derived classes. > Could you do it with Binding's (ie. saving the state at the time of > creating the class with a certain parameter)? An easier way might be to use a factory method that hid this intelligence within the class itself (or a helper). However, again, I'd do this in a subclass of the class being tested, so that users of the real class didn't have to have all this test-specific code lying around. Regards Dave