How to use PHPUnit assert methods in a Codeception functional test?

mtmacdonald picture mtmacdonald · Jan 29, 2014 · Viewed 8.6k times · Source

I'm using Codeception for unit, functional, and acceptance tests of my Laravel 4 PHP application.

My unit tests look this:

use Codeception\Util\Stub;
class ExampleTest extends \Codeception\TestCase\Test 
{
 public function testExample()
 {
  $example = true;
  $this->assertSame($example, true);
 }
}

My functional tests look like this:

use \TestGuy;
class ExampleCest
{
 public function example(TestGuy $I)
 { 
  $I->amOnPage('/auth/login');
  $I->see('Sign in');
 }
}

But I also want to use PHPUnit assert methods in my functional tests. But when I try to, I get this error:

Call to undefined method ExampleCest::assertSame()

How do I use PHP assert methods in a Codeception functional test?

Answer

conceptdeluxe picture conceptdeluxe · Aug 5, 2015

Since Codeception 2.1 (not 2.0) you can use it like the other asserts with:

$I->assertSame($expected, $actual, $message);

But don't forget to enable the Asserts module in your config - e.g.:

class_name: UnitTester
modules:
    enabled: [ Asserts ]

Please note: You might need to change your configuration when upgrading to 2.1 - see upgrade instructions: http://codeception.com/06-19-2015/codeception-2.1-rc.html