Codeception Behaviour Driven (BDD)
Behat was the go-to BDD framework for PHP. Then PHP 7 came out and Behat only supported 5.4. That left a gap.
13 Oct 2023

Behat was the go-to BDD framework for PHP. Then PHP 7 came out and Behat only supported 5.4. That left a gap.
Codeception filled it.
What it does
Codeception is a testing framework for PHP that handles unit tests, functional tests, and acceptance tests in one tool. It's PHPUnit with batteries included — Selenium support, data cleanup, fixtures, and readable test syntax all built in.
Why use it
Two questions from their own FAQ stuck with me:
"Do I really need this?" If you build web apps with forms, links, multiple pages, or APIs, and you want to verify all of it in minutes instead of hours — yes.
"Why not just PHPUnit?" PHPUnit is great for unit tests. But functional testing with Selenium, managing test data, writing XPath selectors — PHPUnit makes all of that painful. Codeception handles it out of the box.
The trade-off
Codeception gives you a single framework for all test levels. BDD-style tests read almost like English. Setup is fast.
The cost: it's opinionated. If your testing needs don't fit Codeception's patterns, you'll fight the framework. And it's PHP-only — if your stack is mixed, you'll need separate tools for non-PHP services.
It works well with frameworks like Laravel and Yii. For raw PHP projects, it's equally straightforward.