我正在使用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断言方法。但是当我尝试时,我得到了这个错误:
调用未定义的方法ExampleCest :: assertSame()
如何在Codeception功能测试中使用PHP断言方法?
答案 0 :(得分:24)
由于 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
答案 1 :(得分:13)
\PHPUnit_Framework_Assert::assertSame()
答案 2 :(得分:2)
在Codeception 4中,只需添加断言模块:
modules:
enabled:
- \Codeception\Module\Asserts
到suite.yml配置文件并运行codeception build
答案 3 :(得分:1)
另一种解决方法是在测试套件中使用Helper方法。
例如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');