I’m writing tests for a business method that invokes some DAO classes to perform operations over a database.
This method, firstly retrieves a JDBC connection from a DataSource object, The same connection is passed to all DAO instances, so I can use it to control the transaction. So, if everything works properly, I must invoke commit() over the connection object.
I would like to test if the commit() is invoked, so I’ve thought to create an expectation (I’m using JMock) that checks that. But since the Connection class isn’t a direct neighbour from my Business class, I don’t know how to do this.
Someone knows how to overcome this? There is some JMock facility for this, or some alternative design that allows to overcome this?
Thanks
You need to mock
DataSourceandConnectionso that your mockDataSourcereturns your mockConnection. And yes, this kind of thing ends up becoming a real pain…