After a small dig around I'm not sure how best to approach this slight
conundrum.

After putting in place some infrastructure to begin ensuring that we have a
fresh type scope (HelperContext instance) per test case for the simple test
case runs I turned my attention to a test class in the parameterized suite.
By experiment (as I couldn't lay my hands on the right documentation) it
appears that the junit infrastructure creates MxN instances of the test
data, where M is the number of test _classes_ and N is the number of data
sets to run against the test classes.  It does this in a static method in
advance of invoking any tests.

I could change things so that we create a HelperContext per data set
instance in the static method,  then use that HelperContext to create the
rest of the SDO data for the test, and get all that injected by junit into
the test classes instance.  But that only gives me a HelperContext per test
class instance,  and that does not give the level of scope isolation we have
learned that we would like, i.e. a fresh scope  per test _case_.

One way to continue with the existing level of testing,  but to gain scope
isolation, would be to get junit to inject factory instance into the test
case, primed with an integer index. The factory method would create
different test data sets according to the integer it is primed with. The
setUp method could then call the factory to ask for test data.  This would
give us the opportunity create a fresh HelperContext and create fresh
instances of the test data using that helper context.

Your thoughts and alternative solutions are welcome.

Kelvin.

Reply via email to