Testing Hibernate DAO, without building the universe around it.
- by Varun Mehta
We have an application built using spring/Hibernate/MySQL, now we want to test the DAO layer, but here are a few shortcomings we face.
Consider the use case of multiple objects connected to one another, eg: Book has Pages.
The Page object cannot exist without the Book as book_id is mandatory FK in Page.
For testing a Page I have to create a Book.
This simple usecase is easy to manage, but if you start building a Library, till you don't create the whole universe surrounding the Book and Page, you cannot test it!
So to test Page;
Create Library
Create Section
Create Genre
Create Author
Create Book
Create Page
Now test Page.
Is there an easy way to by pass this "universe creation" and just test he page object in isolation. I also want to be able to test HQLs related to Page. eg:
SELECT new com.test.BookPage (book.id, page.name) FROM Book book, Page page.
JUnit is supposed to run in isolation, so I have to write the whole test case to create the Page. Any tips will be useful.