> Testing >

Course Overview

Login to bookmark this course

PHPUnit: Unit Testing with a Bite!

Become a super-hero in unit testing with PHPUnit! Learn test doubles, handling exceptions, and Test-Driven-Development.

  • 1704 students
  • EN/ES Captions
  • EN/ES Script
  • Certificate of Completion

Your Guides

About this course

What PHP libraries does this tutorial use?

// composer.json
    "require": {
        "php": ">=8.1.0",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "symfony/asset": "6.1.*", // v6.1.0
        "symfony/console": "6.1.*", // v6.1.4
        "symfony/dotenv": "6.1.*", // v6.1.0
        "symfony/flex": "^2", // v2.2.3
        "symfony/framework-bundle": "6.1.*", // v6.1.4
        "symfony/http-client": "6.1.*", // v6.1.4
        "symfony/runtime": "6.1.*", // v6.1.3
        "symfony/twig-bundle": "6.1.*", // v6.1.1
        "symfony/yaml": "6.1.*" // v6.1.4
    "require-dev": {
        "phpunit/phpunit": "^9.5", // 9.5.23
        "symfony/browser-kit": "6.1.*", // v6.1.3
        "symfony/css-selector": "6.1.*", // v6.1.3
        "symfony/phpunit-bridge": "^6.1" // v6.1.3

Wait, someone built ANOTHER dinosaur park with ZERO tests!?!? I've seen this movie before and it's up to us: to add a rich set of tests before the dinos come for us...

But seriously: testing is great. It's not only a tool for preventing bugs, it's also a development philosophy that can help you write code that's more focused on what you actually want to build.

In this tutorial, we'll get you to super-hero status of unit testing, including:

  • Basic unit testing
  • Test-Driven-Development: how to do it, when to do it!
  • Using data providers to run tests over and over again with different input
  • Mocking and test doubles! Creating mocks in PHPUnit
  • The PHPUnit executable and configuration
  • Testing for exceptions

What about "integration" and "functional" testing? Stay tuned for the next tutorials in this series!

Next courses in the Testing: Beginner Testing section of the Testing Track!


Sort By
Login or Register to join the conversation

Thanks for this awesome course! Will Behat be updated soon?

| Reply |

Hey Vincent-amstz,

No plans to update the Behat course soon, though we recently added a lot of notes to it to make it work on Symfony 5. The notes are places in the videos of the course and in the course scripts below the video as well. Also, we wrote the whole blog post explaining how to set it up correctly on Symfony 5, you can check it out here: https://symfonycasts.com/blog/behat-symfony - this should help to set it up on Symfony 5+, so in theory, it should also work for Symfony 6. We use Behat on the SymfonyCasts project, and we're on Symfony 6.1 now, so we upgraded without major problems and Behat still works for us.

So in short, the only problem with Behat on Symfony 5+ versions is setting it up and configuring properly to make it work. As soon as you were able to do this - it should work well and the concepts we're teaching in https://symfonycasts.com/screencast/behat are still valid for today.

But in case you get stuck following that course on the newest Symfony 6 version - let us know in the comments below the video or in that blog post and we will help you! I hope this helps :)


1 | Reply |

Thank you for this awesome course! I thought testing was scary, but as I follow the tutorials and finish it, I guess now the dinosaurs are scarier than writing tests

| Reply |

Haha, thanks for the great feedback, we are happy that you learned to not touch hungry Dino ;)

| Reply |
Evgeny avatar Evgeny 1 year ago

When is the course scheduled to continue?

| Reply |

Sorry but can't share any details yet. Keep watching updates!

| Reply |
Evgeny avatar Evgeny 1 year ago

Great job, guys!

| Reply |

Thanks for your feedback, stay tuned more interesting courses are coming!

1 | Reply |

Delete comment?

Share this comment

astronaut with balloons in space

"Houston: no signs of life"
Start the conversation!