Как использовать методы 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 ответов
С 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');