рдирд╛рдорд╕реНрдерд╛рди + PHPUnit = 100% рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ

рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдмрд╛рд╣рд░реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рд╕реЙрдХреЗрдЯ, рдбреЗрдЯрд╛рдмреЗрд╕, рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдХреБрдЫ рдФрд░ рдХреЗ рд╕рд╛рдеред рдЖрдЬ, рд▓реЗрдЦ рд░рдирдХрд┐рдЯ + PHPUnit = 100% рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж , рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдЕрдм рд╕рдордп рдерд╛ред
рд░рдирдХрд┐рдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рд╕реБрдВрджрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд░рдирдХрд┐рдЯ рдХреЛ рдкреАрдПрдЪрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рд╢рд░реНрдд рдХреЗ рддрд╣рдд PHP 5.3+ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рд▓реАрд╡рд░реА рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд┐рдЪрд╛рд░



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

namespace A;
foo();


PHP рдкрд╣рд▓реЗ A \ foo () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА foo () рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ "fsockopen", рддреЛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрд╡реЗрджрди



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╡рд░реНрдЧ рд╣реИ:

src / MyClass.php
<?php
namespace MyNS;

class MyClass
{
public function someMethod()
{
$fp = fsockopen( 'example.org' , 123);
}
}


* This source code was highlighted with Source Code Highlighter .


Fsockopen рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:

рдкрд░реАрдХреНрд╖рдг / рд╕рд╣рд╛рдпрдХреЛрдВ
<?php
namespace MyNS;

function fsockopen($hostname, $port)
{
$GLOBALS[ 'fsockopen' ] = array($hostname, $port);
}

* This source code was highlighted with Source Code Highlighter .


рдЕрдм рдЖрдк рдЗрд╕ рддрд░рд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдкрд░реАрдХреНрд╖рдг / MyClass_Test.php
<?php
namespace MyNS\Tests;
use PHPUnit_Framework_TestCase;
use MyNS\MyClass;

require 'helpers.php' ;
require '../src/MyClass.php' ;

class MyClass_Test extends PHPUnit_Framework_TestCase
{
public function test_someMethod()
{
$test = new MyClass();
$test->someMethod();
$ this ->assertEquals(array( 'example.org' , 123), $GLOBALS[ 'fsockopen' ]);
}
}


* This source code was highlighted with Source Code Highlighter .


рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлреЙрдХреНрд╕реЛрдкреЛрдкреЗрди рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╣реЗрд▓реНрдкрд░реНрд╕.рдлреИрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

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


All Articles