You're a lousy Entity Manager and you're doing a bad job. You're a very naughty Entity Manager.
No, not that kind of Mocking. I know, I know, such wit.
Ok, fun time over, back to business.
In this video we're going to be looking at how we can create a Mock of our Entity Manager, allowing us to effectively fake our requests to, and responses from our Database.
Why might we want to do this? The biggest reason is speed. Without having to talk to our database - a slow process, in computer time frames - we will have faster tests. Faster tests mean we are more likely to regularly run our test suite, and after all, if we aren't running our test suite regularly, why are we investing time in creating and maintaining it?
The code used in the example for this video is a hybrid of the example from the How to Test Code that Interacts with the Database cookbook article on Symfony.com.
The first time you create some PHP Unit tests (whether in Codeception, PHPUnit itself, or otherwise) that have mocks that return mocks that return yet more mocks can be quite confusing. It's even more confusing when someone new to the project, or more specifically, new to PHP Unit testing in general has to look at and understand that mock structure before they can benefit from what the test is telling them.
Personally, I find having someone walk through an example, maybe explaining it slightly differently to the written documentation, and going over it step by step is incredibly helpful.
Hopefully you do to.
If you have found this video helpful, please consider sharing. I really appreciate it.
|1||Installing Codeception in Your Symfony 2 Project||04:20|
|3||Codeception's Folder Structure||06:42|
|5||How to Run Codeception Tests||02:43|
|6||Our First Acceptance Test||08:00|
|7||An Alternative Perspective on Acceptance Testing||04:33|
|8||Acceptance Testing Symfony Forms||08:22|
|11||An Introduction to Unit Testing in Codeception||04:24|
|12||Unit Testing a Symfony Service||11:59|
|13||Integration with Symfony 2||06:27|
|14||Databases and Unit Tests||14:21|
|15||Real World Unit Testing - Database Clean Up Issues||06:15|
|16||Fast PHP Unit Testing with SQLite Database||10:19|
|17||Mocking the Entity Manager||20:22|
|18||Codeception Selenium Setup||06:08|
|19||How to Setup XDebug with PHPStorm||07:36|
|20||Step Objects and Page Objects||09:35|
|21||Fizz Buzz Kata||24:43|
|22||Code Coverage Reports||10:10|
|23||Running Acceptance Tests Faster With Phantom JS||01:30|
|24||Mobile Browser Tests||01:18|