рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрдиреЗ рд╕реЗ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдПрдиреЛрдЯреЗрд╢рди рдЧрд╛рдпрдм рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ:
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()
(рдЬреЛ рдЖрдкрдХреЛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ 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
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА рд╣реИ:
рдХреНрд▓рд╛рд╕ рдЯреЗрд╕реНрдЯ PHPUnit_Framework_TestCase рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ {
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ __construct($name = NULL, array $data = array(), $dataName = '') {
рдорд╛рддрд╛-рдкрд┐рддрд╛ :: __ рдирд┐рд░реНрдорд╛рдг ($ рдирд╛рдо, $ рдбреЗрдЯрд╛, $ рдбреЗрдЯрд╛рдирд╛рдо);
}
}