如何在Codeception功能测试中使用PHPUnit断言方法?

mtm*_*ald 13 phpunit codeception

我正在使用Codeception进行Laravel 4 PHP应用程序的单元,功能和验收测试.

我的单元测试看起来如下:

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

我的功能测试看起来像这样:

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

但我也想在我的功能测试中使用PHPUnit断言方法.但是当我尝试时,我得到了这个错误:

调用未定义的方法ExampleCest :: assertSame()

如何在Codeception功能测试中使用PHP断言方法?

con*_*uxe 27

Codeception 2.1(而非2.0)以来,您可以像使用其他断言一样使用它:

$I->assertSame($expected, $actual, $message);
Run Code Online (Sandbox Code Playgroud)

但是不要忘记Asserts在配置中启用模块 - 例如:

class_name: UnitTester
modules:
    enabled: [ Asserts ]
Run Code Online (Sandbox Code Playgroud)

请注意:升级到2.1时可能需要更改配置 - 请参阅升级说明:http://codeception.com/06-19-2015/codeception-2.1-rc.html

  • 对于"如何在功能测试中使用Assert方法"的问题,这是最佳答案. (3认同)
  • 要在IDE中查看其他方法,必须在配置更改后运行一次测试套件.来自代码库文档:"默认情况下,Codeception会在每次更改套件配置时自动重建Actions特性." (3认同)

MrB*_*Win 14

\PHPUnit_Framework_Assert::assertSame()


小智 5

在 Codeception 4 中只需添加断言模块:

modules:
    enabled:
        - \Codeception\Module\Asserts
Run Code Online (Sandbox Code Playgroud)

到您的 suite.yml 配置文件并运行codeception build