I’m trying to write some tests with PHPUnit for our various classes/methods/functions. Some of these require database connectivity. Obviously, I’d like to Mock these, so that I don’t change our database(s).
Can someone point me to some code that explains how to do this? I see lots of examples of Mocking, but nothing specifically about mocking the database.
In general, you don’t want to mock the database, or any other similar external dependency. It’s better to wrap the database in your code with something else, and then you can mock the wrapper. Because a database might have many different ways that it can interact, whereas your code and your tests only care about one or two, your database wrapper only needs to implement those. That way mocking the wrapper should be quite simple.
You would also need some kind of integration test on the wrapper to check it’s doing what it’s supposed to, but there will only be a few of these tests so they won’t slow your unit tests too much.