Ответ 1
\PHPUnit_Framework_Assert::assertSame()
Я использую Codeception для модульных, функциональных и приемочных тестов моего приложения Laravel 4 PHP.
Мои модульные тесты выглядят следующим образом:
use Codeception\Util\Stub;
class ExampleTest extends \Codeception\TestCase\Test
{
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 в своих функциональных тестах. Но когда я пытаюсь, я получаю эту ошибку:
Вызов метода undefined ExampleCest:: assertSame()
Как использовать методы утверждения PHP в функциональном тесте Codeception?
\PHPUnit_Framework_Assert::assertSame()
Так как Codeception 2.1 (не 2.0) вы можете использовать его, как и другие, с помощью:
$I->assertSame($expected, $actual, $message);
Но не забудьте включить модуль Asserts
в вашем config - например:
class_name: UnitTester
modules:
enabled: [ Asserts ]
Обратите внимание: Возможно, вам потребуется изменить конфигурацию при обновлении до версии 2.1 - см. инструкции по обновлению: http://codeception.com/06-19-2015/codeception-2.1-rc.html
Другим обходным решением может быть использование методов-помощников в наборе тестов.
Например, для метода 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');