Phpunit: PHPUnit_Framework_TestCase рдХреЗ рдЙрдкрд╡рд░реНрдЧ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ @dataProvider рдХреЗ рдЯреВрдЯрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЕрдЧре░ 2012  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sebastianbergmann/phpunit

рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрдиреЗ рд╕реЗ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдПрдиреЛрдЯреЗрд╢рди рдЧрд╛рдпрдм рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ:

PHPUnit 3.6.12 by Sebastian Bergmann.

...E

Time: 0 seconds, Memory: 3.25Mb

There was 1 error:

1) Test::testTheProvider
Missing argument 1 for Test::testTheProvider()

/home/nick/development/PHP-1.php:43

FAILURES!
Tests: 4, Assertions: 5, Errors: 1.

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ testTheProvider рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ @depends рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рддреЛрдбрд╝рддрд╛ рдирд╣реАрдВ рд╣реИред

<?php
class Test extends PHPUnit_Framework_TestCase {

    public function __construct() {
        parent::__construct();
    }

    public function testEmpty() {
        $stack = array();
        $this->assertEmpty($stack);

        return $stack;
    }

    /**
     * <strong i="10">@depends</strong> testEmpty
     */
    public function testPush(array $stack) {
        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertNotEmpty($stack);

        return $stack;
    }

    /**
     * <strong i="11">@depends</strong> testPush
     */
    public function testPop(array $stack) {
        $this->assertEquals('foo', array_pop($stack));
        $this->assertEmpty($stack);
    }

    public function theProvider() {
        return array(
            array(true, false)
        );
    }

    /**
     * <strong i="12">@dataProvider</strong> theProvider
     */
    public function testTheProvider($var1, $var2) {
        //$var1 = true;
        //$var2 = false;

        $this->assertNotEquals($var1, $var2);
    }

}
?>

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА рд╣реИ:

рдХреНрд▓рд╛рд╕ рдЯреЗрд╕реНрдЯ PHPUnit_Framework_TestCase рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ {
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __construct($name = NULL, array $data = array(), $dataName = '') {
рдорд╛рддрд╛-рдкрд┐рддрд╛ :: __ рдирд┐рд░реНрдорд╛рдг ($ рдирд╛рдо, $ рдбреЗрдЯрд╛, $ рдбреЗрдЯрд╛рдирд╛рдо);
}
}

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ред рдпрджрд┐ рдЖрдк PHPUnit_Framework_TestCase::__construct() (рдЬреЛ рдЖрдкрдХреЛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ parent::__construct() рдкрд░ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рд▓рд╛рдВрдХрд┐, PHPUnit_Framework_TestCase рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЕрдкрдиреЗ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реИрд╕реЗ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ (http://www.phpunit.de/manual/current/en/extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestCase) рдФрд░ DBUnit BankAccount рдирдореВрдирд╛ рднреА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ (https:/ /github.com/sebastianbergmann/dbunit/blob/master/Samples/BankAccountDB/BankAccountDBTest.php#L60)ред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдерд╛ рдпрджрд┐ рдХреБрдЫ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рд┐рд░реНрдл рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА рд╣реИ:

рдХреНрд▓рд╛рд╕ рдЯреЗрд╕реНрдЯ PHPUnit_Framework_TestCase рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ {
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __construct($name = NULL, array $data = array(), $dataName = '') {
рдорд╛рддрд╛-рдкрд┐рддрд╛ :: __ рдирд┐рд░реНрдорд╛рдг ($ рдирд╛рдо, $ рдбреЗрдЯрд╛, $ рдбреЗрдЯрд╛рдирд╛рдо);
}
}

рдирдорд╕реНрддреЗ,
рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдерд╛ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдЙрддреНрддрд░ рдорд┐рд▓рд╛, рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдпрд╛ред рдЯрд╛рдп, @foued611

рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рдЗрд╕ рддрд░рд╣ рд╣реИ рдФрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

# my base test class
use PHPUnit_Framework_TestCase;

class mytest extends PHPUnit_Framework_TestCase {
   public function __construct() {
     # do some common stuff to my tests...
  }
}


class IntegrationTest extends mytest {
  public function __construct() {
     parent::__construct();
  }
   /**
    * <strong i="9">@dataProvider</strong> additionProvider
    */
    public function testAdd($a, $b, $expected)
    {
        $this->assertEquals($expected, $a + $b);
    }

    public function additionProvider()
    {
        return [
            'adding zeros'  => [0, 0, 0],
            'zero plus one' => [0, 1, 1],
            'one plus zero' => [1, 0, 1],
            'one plus one'  => [1, 1, 3]
        ];
    }

}

рдлрд┐рдХреНрд╕реНрдб рдФрд░ рд╡рд░реНрдХрд┐рдВрдЧ рд╡рд░реНрдЬрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ

# my base test class
use PHPUnit_Framework_TestCase;

class mytest extends PHPUnit_Framework_TestCase {
   public function __construct() {
     # do some common stuff to my tests...
    parent::__construct(...func_get_args());
  }
}


class IntegrationTest extends mytest {
  public function __construct($name = NULL, array $data = array(), $dataName = '') {
    parent::__construct(...func_get_args());
  }
   /**
    * <strong i="13">@dataProvider</strong> additionProvider
    */
    public function testAdd($a, $b, $expected)
    {
        $this->assertEquals($expected, $a + $b);
    }

    public function additionProvider()
    {
        return [
            'adding zeros'  => [0, 0, 0],
            'zero plus one' => [0, 1, 1],
            'one plus zero' => [1, 0, 1],
            'one plus one'  => [1, 1, 3]
        ];
    }

}

рд╡рд░реНрддрдорд╛рди PHPUnit рдкреНрд░рд▓реЗрдЦрди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо __constructor() рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЛрдб рдХреЛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реЛред
рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо __constructor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреБрдЫ рдЧрд╛рдЗрдб рдЬреЛрдбрд╝реЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗред

рдкрд┐рдВрдЧ рдХреНрдпреЛрдВрдХрд┐ рдмрдВрдж @sebastianbergmann

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

keradus picture keradus  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dkarlovi picture dkarlovi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AnmSaiful picture AnmSaiful  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ezzatron picture ezzatron  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

edyan picture edyan  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ