Hi Boris,

   I just use a registery builder and add the sub modules I need to test
(as already mentioned). Often
I use public TestModule static classes that reside into the TestCase class.
Then I just use those TestModule
classes to build the registry. They contain often only the services needed
using bind(ServiceImpl.class) which
makes it quite easy to use special bindings and only a fraction of the
application sub modules of this BI parts.

I use a H2 inmemory setup to get everything related to unit tests done
quickly. For setup I use the appropriated
services and sometimes I use the entities directly. Depends on the
situation and use case. Often I use the same
entities in different services dealing those differently or altering them
(like one serivce creates a task and another
one picks it up and alters and process it).

I also have limited unit tests where I simply setup hibernate directly, add
the required entity classes and wire up and
instanciate the services directly but I am almost ever come back later and
replace those with using a RegistryBuilder.

One thing that you need to consider is that your HibernateConfigurer
instances must be different for the application
and the test. I have an AppModule and a TestModule and also I have sub
modules with the configuration. Therefore
I just add a InMemoryTestDatabaseModule and get the hibernate configuration
for the in memory test database.
Also this module is in src/test/java rather then in the src/main/java.

The rest is as straight forward as you actually wrote. Usually one use
state-testing rather then behavior-testing.
So you setup, modify, verify the state of the database. There are rare
occursions I use behavior testing and using
a mocking framework for injecting services and replace those.


Cheers,

Martin (Kersten)



2013/9/22 Boris Horvat <horvat.z.bo...@gmail.com>

> Hi all,
>
> How does one make a proper testing of the business layer in tapestry that I
> inject into the page as a service? Is there anything specific that one
> needs to look out for?
>
> Should I simple do something like
>
> 1) Create an object of the BU layer
> 2) Mock hibernate with some in-memory db
> 3) Call methods of the BU layer
> 4) Verify the results
>
> Any test example that I can check out? Any projects with a nice testing
> environments that one can recommend?
>
> Thanks
>
> --
> Sincerely
> *Boris Horvat*
>

Reply via email to