Hi,

We are using T5 IOC in a standalone application and it is great. Most
tests we can implement with a few mock classes and instantiating an
instance of the implementation of a service. There are however cases
where it is easier to use the IOC registry to stitch things together,
but only replace some services with mocks (or a suitably configured
local instance of a service). Ideally I want to use existing AppModule
configuration modules and only extend with a test module.

My problem is how to get the registry to return my mock objects when
asked for a specific service. It feels like a problem that probably
has a simple solution.

When using a standalone test module, I've managed to write mock
instances into static fields in the TestAppModule, and then return
them from ServiceBuilder methods. This works, but is laborious and
very ugly.

I spent some time picking testify apart, which is great to learn from.
However as far as I can see the dependency injector completely ignores
the IOC registry and intervenes by injecting objects from its own
pool. This has the advantage that it can be initialised after the
registry has been started. This is great, but we only use constructor
injection, so I don't think this is going to work for us.

My next thought is to write the test class into a field in my
TestAppModule before starting up the registry. I imagine I can then
use a ServiceOverride configuration method to pick out the mock
objects I want to use, and provide a custom object locator to return
these for specific services.

This is still quite ugly and does not deal with the problem of how to
handle the situation where objects are recreated in a setup method for
every test run.

So I thought I'd ask before spending more time on this. Anybody have any ideas?

Thanks,

Adriaan

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to