| A base domain provides a supply of objects. When T2's
U2.T2.RndEngine test engine needs to generate an object of a
class C, it first checks if it can get it from the base domain. If
it can get one, say x, then the engine will create a clone
of x and use the clone. If the base domain cannot supply an
instance of C, then the engine continues with either looking an
instance in its own
U2.T2.Pool object pool , or creates a
fresh instance. See also the global explanation in
U2.T2U2.T2 package overview .
For cloning the engine relias on serialization, so it is
essential that objects supplied by a base domain are
serializable. Cloning is done to make sure that the objects in the
base domain are shielded from the engine's side effect. The cloning
is btw not done by the base domain itself; it is the responsibility
of the test engine. So if you implement your own test engine, do
keep this in mind.
Base domain essentially defines the value space over which the
test engine will range. E.g. we can make it very small, large but
still finite, or unbounded.
To define his own base domain, the test engineer should provide
an implementation of this abstract class, and pass it to the test
engine, e.g. via the
U2.T2.RndEngine.RndTest RndTest API . A
U2.T2.BaseDomain0 default implementation is provided.
|