рд╢реБрд░реБрдЖрддреА рд╕реЗ рд╢реБрд░реБрдЖрддреА рддрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг

рдирдорд╕реНрддреЗ

рдЗрд╕ рдкреЛрд╕реНрдЯ рдиреЗ рдореБрдЭреЗ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рдФрдЬрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдФрд░ рдХреБрдЫ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

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

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг, рдореИрдВ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдврд╛рдВрдЪрд╛ - PHPUnitред рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ PEAR рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рджреЛ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдкреНрд░рд▓реЗрдЦрди рд╕реЗ ):

pear config-set auto_discover 1 pear install pear.phpunit.de/PHPUnit 


рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкреАрдПрдЖрд░рдПрдЪ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рд╡рд░реНрддрдиреА рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ PHPUnit рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ред

рдЪрд▓реЛ рд░реЙрдХ рдХрд░рддреЗ рд╣реИрдВ


рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреА рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ: рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ред рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрд░ рд╡рд┐рдзрд┐ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ (рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ)ред

TestModel.php
 class TestModel { public $num; public $str; public function setAttributes($i, $s) {} /* @return: true,    false,    */ public function saveData() {return false;} /* @return: true,       false,    */ public function loadData() {return false;} } 

рд╣рдордиреЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реЗ рд╕реНрдерд╛рди рдкрд░ рдХреБрдЫ рднреА рдкрдврд╝рд╛ рдФрд░ рд▓рд┐рдЦрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╢рд░реНрдд рдкрд░ рдХрд┐ рд╣рдо рдЭреВрдареЗ рд╣реИрдВред

рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреГрддреНрд░рд┐рдо рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддреЗ рд╣реИрдВ:

рдмреЗрд╢рдХ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ :)

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

рдЗрдХрд╛рдИ / TestModelTest.php:
 require_once 'PHPUnit/Autoload.php'; class TestModelTest extends PHPUnit_Framework_TestCase { function testTrue() { $this->assertTrue(true); } } 


TestModelTest рдЯреЗрд╕реНрдЯрдореЙрдбрд▓ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рд╣реИред
testTrue () рд╣реА рдЯреЗрд╕реНрдЯ рд╣реИред рдЗрд╕рдореЗрдВ, рд╣рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рд╣рдо рдмрд╕ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рддреНрдп рд╕рд╣реА рд╣реИ :) рдпрд╣ рдПрд╕реНрдЯреНрд░реЛрдЯреНрд░реВ рд╡рд┐рдзрд┐ (рдПрд╕реНрдЯрд░-рдПрд╕реНрдЯрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рд╣рдо рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдЪ рд╣реИред
рд╣рдорд╛рд░реА рдкрд░реАрдХреНрд╖рд╛ рдЪрд▓рд╛рдУред PHPUnit рдХреЗрд╡рд▓ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред
 phpunit unit 

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
 PHPUnit 3.6.10 by Sebastian Bergmann. . Time: 0 seconds, Memory: 2.75Mb OK (1 test, 1 assertion) 

рд╣реБрд░реНрд░реЗ, рд╣рдорд╛рд░реА рдкрд░реАрдХреНрд╖рд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ! рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред

TDD

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

рдЗрдХрд╛рдИ / TestModelTest.php:
 <?php require_once 'PHPUnit/Autoload.php'; require_once dirname(__FILE__).'/../TestModel.php'; class TestModelTest extends PHPUnit_Framework_TestCase { // ,       function testStringCannotBeEmpty() { $model=new TestModel; $model->setAttributes(15,''); $this->assertFalse($model->saveData()); // ,      ! $model->setAttributes(15,'aaaa'); $this->assertTrue($model->saveData()); //   } //  10<i<20 function testIntMustBeGreaterThanTenAdnSmallerThanTwenty() { $model=new TestModel; /*   */ $model->setAttributes(2,'test1'); $this->assertFalse($model->saveData()); $model->setAttributes(10,'test2'); $this->assertFalse($model->saveData()); $model->setAttributes(20,'test3'); $this->assertFalse($model->saveData()); $model->setAttributes(25,'test4'); $this->assertFalse($model->saveData()); /*   */ $model->setAttributes(15,'test5'); $this->assertTrue($model->saveData()); } //  / function testSaveLoad() { $i=13; $str='test'; $model=new TestModel; $model->setAttributes($i,$str); $this->assertTrue($model->saveData()); //  $fetchModel=new TestModel; $this->assertTrue($fetchModel->loadData()); //  //     $this->assertEquals($fetchModel->num,$i); $this->assertEquals($fetchModel->str,$str); } } 


рд╣рдордиреЗ рд╕рднреА рддреАрди рдорд╛рдорд▓реЛрдВ рдХреЛ рддреАрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдПред рдЕрдм рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ:

 PHPUnit 3.6.10 by Sebastian Bergmann. FFF Time: 0 seconds, Memory: 2.75Mb There were 3 failures: 1) TestModelTest::testStringCannotBeEmpty Failed asserting that null is false. ... 2) TestModelTest::testIntMustBeGreaterThanTenAdnSmallerThanTwenty Failed asserting that null is false. ... 3) TestModelTest::testSaveLoad Failed asserting that null is true. ... FAILURES! Tests: 3, Assertions: 3, Failures: 3. 


рдЕрд░реЗ! рдЦреИрд░, рдХреБрдЫ рднреА рдирд╣реАрдВ, рдпрд╣ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП :) рдЕрдм рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред

рдЗрдХрд╛рдИ / TestModelTest.php:
 class TestModel { public $num; public $str; public $fname="file.txt"; public function setAttributes($i, $s) { $this->num=(int)$i; $this->str=$s; } public function saveData() { $h=fopen($this->fname,'w+'); $res=fputs($h, $this->str."\r\n".$this->num); fclose($h); return (bool)$res; } public function loadData() { $arr=file($this->fname); if ($arr==false) return false; list($this->str,$this->num)=$arr; return (bool)$arr; } } 

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ:
 There were 3 failures: 1) TestModelTest::testStringCannotBeEmpty Failed asserting that true is false. ... 2) TestModelTest::testIntMustBeGreaterThanTenAdnSmallerThanTwenty Failed asserting that true is false. ... 3) TestModelTest::testSaveLoad Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'test - -' +'test' FAILURES! Tests: 3, Assertions: 6, Failures: 3. 


рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдЪреЗрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдмрд╛рд░ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдЬрд╛рдиреЗ рдХреНрд░рдо рдореЗрдВ:
1. testStringCannotBeEmptyред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреАред рдПрдХ рдЬрд╛рдВрдЪ рдЬреЛрдбрд╝реЗрдВ:
  public function saveData() { if (!strlen($this->str)) return false; ...... } 

2. testIntMustBeGreaterThanTenAdnSmallerThanTwentyред рд╢рд░реНрдд 10 <x <20ред рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
  public function saveData() { if (!strlen($this->str)) return false; if ($this->num<10 || $this->num>20) return false; ...... } 

3. testSaveLoadред рдЕрд╣рд╛! рдПрдХ рдФрд░ рдЧрд▓рддреА, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓рд┐рдЦреА рдЧрдИ рдкрдВрдХреНрддрд┐ рдкрдврд╝реА рдЧрдИ рд░реЗрдЦрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реИред рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдзреНрд╡рдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рддреЗ рдпрд╛ рд╕реАрдЦрддреЗ рд╣реИрдВ FILE_IGNORE_NEW_LINESред
рд╣рдо рд╕рд╣реА рдХрд░ рд░рд╣реЗ рд╣реИрдВред
  public function loadData() { $arr=file($this->fname, FILE_IGNORE_NEW_LINES); .... } 

(рд╕реНрдкреЙрдЗрд▓рд░: рдХрдВрдбреАрд╢рди 2 рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ)

рдЪрд▓рд╛рдПрдБ:
 There was 1 failure: 1) TestModelTest::testIntMustBeGreaterThanTenAdnSmallerThanTwenty Failed asserting that true is false. TestModelTest.php:30 C:\Program Files\php\phpunit:46 FAILURES! Tests: 3, Assertions: 8, Failures: 1. 

рд╣рдо 46 рд╡реАрдВ рдкрдВрдХреНрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ (рдореЗрд░реЗ рд▓рд┐рдП): $ рдореЙрдбрд▓-> рд╕реЗрдЯрдПрдЯреНрдпреВрдПрдВрдЯреНрд╕ (20, 'рдЯреЗрд╕реНрдЯ 3'); рд╣рдордиреЗ рдЪрд░рдо рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛! рд╣рдо рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ:
  public function saveData() { if (!strlen($this->str)) return false; if ($this->num<=10 || $this->num>=20) return false; ...... } 


рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ:
 Time: 0 seconds, Memory: 2.75Mb OK (3 tests, 11 assertions) 

рд╣реБрд░реНрд░реЗ, рддреАрдиреЛрдВ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рдореЙрдбрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ :)

рдирд┐рд╖реНрдХрд░реНрд╖


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

Source: https://habr.com/ru/post/In138350/


All Articles