> Unit tests should be small, specific enough tests that they should not ever require using the database.
What if the code you're testing is an ORM, or something else that intrinsically implies a database?
It seems to me that tests that're good enough that they'll catch a decent proportion of errors would involve a database here.
Of course, you might designate such tests "integration tests" rather than "unit tests", but I think the important thing about tests is not what you call them, it's whether they catch bugs.