2014-01-29 5 views
13

Ich verwende Codeception für Unit-, Funktions- und Akzeptanztests meiner Laravel 4 PHP-Anwendung.Wie verwendet man PHPUnit-Assert-Methoden in einem Codeception-Funktionstest?

My Unit-Tests sehen folgendermaßen aus:

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

Meine Funktionstests wie folgt aussehen:

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

Aber ich möchte auch PHPUnit behaupten Methoden in meinem Funktionstests verwenden. Aber wenn ich versuche zu, bekomme ich diesen Fehler:

Call to undefined Methode ExampleCest :: assertSame()

Wie verwende ich PHP assert Methoden in einem Codeception Funktionstest?

Antwort

11

\PHPUnit_Framework_Assert::assertSame()

0

können andere Problemumgehung in Test-Suite zu verwenden sein Hilfsmethoden.

Zum Beispiel für assertSame() Methode

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); 
    } 
} 

wo ExpectedHelper ist die Testsuite Helper Namen (zB: UnitHelper, FunctionalHelper), die

unter _Support Ordner sein sollte

und Sie können es in Ihrem Test als $I->assertSame('12340','12340'); verwenden

20

Seit Codeception 2.1 (nicht 2.0) Sie können es verwenden, wie der andere behauptet mit:

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

Aber vergessen Sie nicht das Asserts Modul zu ermöglichen, in der config - zB:

class_name: UnitTester 
modules: 
    enabled: [ Asserts ] 

Bitte beachten Sie: möglicherweise müssen Sie Ihre Konfiguration ändern, wenn auf 2,1 Upgrade - siehe instru Upgrade ctions: http://codeception.com/06-19-2015/codeception-2.1-rc.html

+3

Dies ist die beste Antwort hier für die Frage "wie die Assert-Methoden in Funktionstests zu verwenden". – lintuxvi

+3

Um zusätzliche Methoden in Ihrer IDE zu sehen, müssen Sie die Testsuite nach der Konfigurationsänderung einmal ausführen. Aus Codeception-Dokumenten: "Standardmäßig erstellt Codeception bei jeder Änderung der Suite-Konfiguration automatisch das Attribut" Aktionen "." –