Hi Oscar,
Good to see your tracking the latest changes on trunk.  (By the way, there
is a vote underway, so hopefully this will be released by the end of the
week).

With respect to using the old IsisTestRunner class, can I suggest you now
stop using that?  Instead, I recommend that you use
the IsisSystemForTestRule class that bootstraps an Isis system with a
proper JDO backend (rather than the old JUnit in-memory objectstore).  This
is a much more faithful test environment.

I've refactored the example app, you can see an abstract test class here
[1]; as you can see, you only need to register your services once.  An
example concrete test that subclasses from it is [2]; plenty of other
examples are in the subpackages under [3].

One thing to be aware of: the database is never torn down once created (the
Isis system is held on a ThreadLocal).  So each test needs to reset
afterwards.  In the example tests I do this in the @After method, but you
could also use dbUnit or any other approach that makes sense.

HTH
Dan

[1]
https://github.com/apache/isis/blob/master/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integtests/AbstractIntegTest.java
[2]
https://github.com/apache/isis/blob/master/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integtests/ToDoItem_title.java
[3]
https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integtests



On 28 May 2013 17:51, GESCONSULTOR - Óscar Bou <[email protected]>wrote:

>
> Hi to all.
>
> We are migrating to the latest snapshot our current code, just for testing
> pre-release.
>
> Main test classes have been moved to "core", as you said on previous
> emails.
>
> We can use the "old" IsisJRunner code for properly initializing the Isis
> context on our Tests base class.
>
> Also, as the following annotations have been removed:
>
> import org.apache.isis.viewer.junit.Service;
> import org.apache.isis.viewer.junit.Services;
>
> We must manually inject by:
> getPersistenceSession().getServicesInjector()..injectServicesInto([domainObject,
> Service, Repository, ...]);
>
>
> As you said on previous emails, could the current implementation on
> "org.apache.isis.viewer.junit.internal.ServicesInstallerAnnotatedClass" be
> used with "little changes" as a standard way of registering Factories,
> Repositories and other Services simply by annotating them, without needing
> to add them to the "isis.properties" file ?
>
> Where should the new "ServicesInstaller" be declared?
>
> Seems that the automatic "Service" registration, without the need to
> update the "isis.services" entry on the "isis.properties" is nearly there,
> but would need to move also that code to the "core" module or another one.
>
>
>

Reply via email to