Guice persist by itself does not support this feature
There are a few approaches you could take
1. Jukito
Jukito is a JUnit4 test runner. It adds guice support to JUnit.
Thous it allows to inject Objects into methods (this includes
@After method).
You could take advantage of this and have your DB cleaned up in an
after method.
2. JUnit4 Rule
You could write your own JUnit4 Rule. There are several tutorials
on the net. Also a good start to look in some code is the
TemporaryFolder rule.
3. DB Unit + H2
If you are using H2 or another light weight in memory DB for your
tests you can spin up an instance for every test.
To ensure a base setup in the DB you can then use DB Unit or
similar tools to provision the data for your test
4. Unique Business Keys
If every entity has a business key besides the technical ID than
you can use random generated business keys (or random
pre-/postfixes) to make sure that two concurrently running tests
are not interfering with each other.
This may be the most demanding approach because you also need to
make sure every test is cleaning up behind itself or otherwise
data garbage will start to accumulate.
I'm sure there are at least half a docent more approaches but those 4 were on top of my mind.
Sprint provides the ability to rollback transactions on success in test cases. This allows each test case to start from a clean initial state.
How can I implement the same behaviour with guice-persist?
--
You received this message because you are subscribed to the Google Groups "google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-guice...@googlegroups.com.
To post to this group, send email to google...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-guice/da0a4d31-d9e0-4ca4-8d30-cfc6c6b40b68%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.