jQuery in Action, 3rd edition
The moose likes JDBC and Relational Databases and the fly likes Stubbing a database for unit testing Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "Stubbing a database for unit testing" Watch "Stubbing a database for unit testing" New topic

Stubbing a database for unit testing

J Rosetto

Joined: Jun 03, 2008
Posts: 21
I am looking for some kind of library from which I can provide stubs for SQL calls (for unit testing). Kind of like a dummy JDBC driver (a similar idea to JDBCProxy, but better).

It would work in a similar manner to this:

String connectionString = "jdbc:stub:<stub_definition_file>";
Connection connection = DriverManager.getConnection(connectionString, "username", "password");

The stub connection could then be used to create statements, which when executed return whatever data we define in the <stub_definition_file>.

I have a couple of questions:
1) Are there any (mature) existing libraries which do this already?
2) Is this is a good approach to the problem of testing code that accesses a database? (It means we can run unit tests without the dependency of a test database).
Tim LeMaster
Ranch Hand

Joined: Aug 31, 2006
Posts: 226
Depends on what you are unit testing.

If I wanted to Unit test the actual SQL (does the SQL do what I think it should) I would use DBUnit to put the database in a known state and make sure I got back the data I wanted.

If I wanted to test some DAOs and make sure the correct SQL was going to be passed to JDBC calls and the resources properly closed I would use Mockrunner - specifically the BasicJDBCTestCaseAdapter.
I agree. Here's the link: http://aspose.com/file-tools
subject: Stubbing a database for unit testing
jQuery in Action, 3rd edition