Как использовать методы PHPUnit assert в функциональном тесте Codeception?

Я использую Codeception для модульных, функциональных и приемочных тестов моего PHP-приложения Laravel 4.

мой модульные тесты выглядят так:

use CodeceptionUtilStub;
class ExampleTest extends CodeceptionTestCaseTest 
{
 public function testExample()
 {
  $example = true;
  $this->assertSame($example, true);
 }
}

мои функциональные тесты выглядят так:

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

но я также хочу использовать методы PHPUnit assert в моих функциональных тестах. Но когда я пытаюсь, я получаю эту ошибку:

вызов неопределенного метода ExampleCest:: assertSame ()

Как использовать методы PHP assert в Codeception функциональный тест?

3 ответов


\PHPUnit_Framework_Assert::assertSame()


С Codeception 2.1 (не 2.0) вы можете использовать его как другой утверждает:

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

но не забудьте включить Asserts модуль в вашей конфигурации-например:

class_name: UnitTester
modules:
    enabled: [ Asserts ]

обратите внимание: возможно, Вам потребуется изменить конфигурацию при обновлении до 2.1-см. инструкции по обновлению:http://codeception.com/06-19-2015/codeception-2.1-rc.html


другим обходным путем может быть использование вспомогательных методов в Test suite.

например assertSame() метод

class ExpectedHelper extends \Codeception\Module
{
    protected $test;

    function _before(\Codeception\TestCase $test) {
        $this->test = $test;
    }

    function assertSame($expected, $actual, $message = '')
    {
        $this->test->assertSame($exception, $actual, $message);
    }
}

здесь ExpectedHelper быть именем помощника набора тестов (например:UnitHelper, FunctionalHelper) который должен быть под _support папку

и вы можете использовать его в тесте как $I->assertSame('12340','12340');