рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЛрдбреЗрд╕реЗрдкреНрд╢рди рдХреЗ рдирдП рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬреАрд╡рди рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛рдП! рд╡рд┐рдХрд╛рд╕ рдФрд░ рдирд┐рд░рдВрддрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИ, рдФрд░ рдЖрдЬ рд╣рдо рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдВрд╣рд┐рддрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЕрднреА рднреА рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЖрд╕рд╛рдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рдкрдврд╝рдирд╛, рд▓рд┐рдЦрдирд╛ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЬреЛ рд╕рд┐рдореНрдлрдиреА рд╕реЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рддрдХ, рд▓рд╛рд░рд╡реЗрд▓ рд╕реЗ рдореИрдЧрдиреЗрдЯреЛ рддрдХ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдврд╛рдВрдЪреЗ рдФрд░ рд╕реАрдПрдордПрд╕ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рд╕рдореБрджрд╛рдпреЛрдВ рдХреЗ рд▓реЛрдЧ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдкреИрдЪ рднреЗрдЬрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░рд╛ рджрд░реНрд╢рди рдврд╛рдВрдЪреЗ рд╕реЗ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИ, рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ - рд╕рд╣реА рддрд░реАрдХрд╛ред рд╣рдорд╛рд░рд╛ рдЕрджреНрднреБрдд рд╕рдореБрджрд╛рдп рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдЬрд╛рд░реА рд░рдЦреЗ рд╣реБрдП рд╣реИред
рдареАрдХ рд╣реИ, рдХреЛрдб 3.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди
PHPUnit 8 рд╕рдорд░реНрдерди
рд╕рдВрд╕реНрдХрд░рдг 3.0 рдореЗрдВ, рд╣рдордиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рддреЛрдбрд╝рд╛ред рдЗрд╕реЗ рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо PHP рдХреЗ рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд╣реАрдВ рдмрдврд╝рд╛ рд░рд╣реЗ рд╣реИрдВ: рдХреЛрдб 3.0 3.0 рдЕрднреА рднреА PHP 5.6+ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЕрднреА рднреА рд╕рднреА рдкреНрд░рдореБрдЦ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ PHPUnit 6 рдФрд░ PHPUnit 7 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрди рд╕рднреА рднрд╛рдЧреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдореЗрдВ рдЖрдк рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ PHPUnit 8 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЕрджреНрдпрддрди рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрдЪрд╛рд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ PHP.nit рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 6 рдпрд╛ 7 рдореЗрдВ рдХрдВрдкреЛрдЬрд╝рд░ рдореЗрдВ рдмрджрд▓реЗрдВред json:
"phpunit/phpunit": "^7.0"
рдЕрдиреБрдХреВрд▓рддрд╛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ PHPUnit 8 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреНрд░рд╛рдердорд┐рдХ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛,
@ рдирдЯреНрдЯреАрдмрд╛рд▓реНрдбрд╛ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХрд╛рдо рдерд╛, рдФрд░ рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ
рдХреЛрдбреЗрдкреНрд╢рди / phpunit-рдЖрд╡рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпреЛрдВред
рд░рд┐рдореЛрдЯ рдореЙрдбреНрдпреВрд▓
рд╣рдордиреЗ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╣реИ:
- AngularJS - рдХреЗрд╡рд▓ Angular 1 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ
- ZF1 - рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- Yii1 - рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- Silex - рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рдлреЗрд╕рдмреБрдХ - рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ
- XMLRPC - рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ
рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЙрдирдХреЗ рдХреЛрдб рдХреЛ 2.5 рд╢рд╛рдЦрд╛ рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдПрдХ рдХрд╕реНрдЯрдо рд╕рд╣рд╛рдпрдХ рдмрдирд╛рдПрдВред
рд╕рдВрд╢реЛрдзрд┐рдд рдЪреВрдХ
рдпрджрд┐ рдЖрдк
рдорд▓реНрдЯреАрд╕реИрд╢рди рдкрд░реАрдХреНрд╖рдг рдФрд░
$ I-> рдХреЗ рдкрд╛рд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдП рд╣реИрдВред
рдлреНрд░реЗрдВрдб рдореЗрдердбреНрд╕
рдХреЛрдбреЗрдкреНрд╢рди \ рдПрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЗ
рдПрдХреНрд╕реЗрдкреНрдЯреЗрдВрд╕рдЯреЗрд╕реНрдЯрд░ (рдпрд╛ рдПрдХ рдЕрдиреНрдп рд╡рд░реНрдЧ рдЬреЛ
рдорд▓реНрдЯреАрд╕реИрд╢рди рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ
рдХреЛрдбреЗрдкреНрд╢рди \ рд▓рд┐рдм \ рдПрдХреНрдЯрд░ \ рд╢реЗрдпрд░реНрдб рдЯреНрд░реИрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
<?php class AcceptanceTester extends \Codeception\Actor { use _generated\AcceptanceTesterActions; use \Codeception\Lib\Actor\Shared\Friend; }
рд╣рдордиреЗ рдирдП рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╢рд░реНрдд рдмрдпрд╛рди рднреА рдмрдВрдж рдХрд░ рджрд┐рдП рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ рдЙрдирдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк
рдХреИрдиреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
рдмрдврд╝реА рд╣реБрдИ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╢реЗрд▓
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреВрд▓
рдХреЛрдбрд╕реЗрдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ
рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╣ рдПрдХ рдирдпрд╛
REPL рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджреЗрддреА рд╣реИред рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЖрджреЗрд╢реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
<?php $I->amOnPage('/'); $I->pause();
рдФрд░ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдХрдорд╛рдВрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░рдг рджрд░ рдЪрд░рдгред рд╕рдлрд▓ рдЯреАрдореЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкрд░реАрдХреНрд╖рд╛ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдк
WebDriver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрдг рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╣реЛрдЖ / рдХрдВрд╕реЛрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдХреЗ рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдлреНрдЯ, рд░рд╛рдЗрдЯ рдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЖрдЬрдорд╛рдПрдВ рдФрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХрдо рджрд░реНрджрдирд╛рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рддрд░реАрдХреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдПрдХ-рдкреГрд╖реНрда рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рднрд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЖрдк рдЕрдм рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдирд╛рдУрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЕрдм рдЖрдк рдЗрд╕реЗ рд░рд┐рдЯреНрд░реА * рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЪрд░рдгреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<?php
рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ CodeceptJS рд╕реЗ рднреА рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдХреАрдЬрд╝ рдХреА рд╕реНрд╡реАрдХреГрддрд┐ рдХреА рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдПрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ рддреЛ рдХреБрдХреАрдЬрд╝ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ? рдЖрдк tryTo * рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<?php if ($I->tryToSeeElement('.alert.cookie')) { $I->click('Accept', '.cookie'); }
рдХреЛрд╢рд┐рд╢ * рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ * рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдбреЗрдХреЛрд░реЗрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдХрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╢рд░реНрдд рдмрдпрд╛рди (рдХреИрдиреА * рддрд░реАрдХреЗ) рдХреЛ рднреА рдЪрд░рдг-рджрд░-рдЪрд░рдг рдбреЗрдХреЛрд░реЗрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдЙрдЯрдкреБрдЯ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ
рд╡рд┐рдлрд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЕрдм рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕реАрдЖрдИ рд╕рд░реНрд╡рд░ рдкрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╢рд░реАрд░ рд╣реЛрдЧрд╛ред

рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдиреНрдирдпрди
рд╕рдВрд╕реНрдХрд░рдг 3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╡рд░реНрдЬрди рдХреЛ "рдХрдВрдкреЛрдЬрд░.рдЬреЙрди рдореЗрдВ" ^ 3.0 рдореЗрдВ рдмрджрд▓реЗрдВред
"codeception/codeception": "^3.0"
рдирд┐рд╖реНрдХрд░реНрд╖
рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬреЛ рдЗрди рд╕рднреА рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рд╛рде рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬреЛ рд╣рд░ рджрд┐рди рд╕рдВрд╣рд┐рддрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдорд╛рдореВрд▓реА рд░рд┐рд▓реАрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдХреВрд▓рддрд╛ рдкреБрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд╛рдХрдЯрд┐рдмреНрд▓рд╛рдбрд╛ рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред
рдЙрджрд╛рд░ рджрд╛рди рдХреЗ рд▓рд┐рдП рд╕реЗрд░рд╛рд╡реЛ рдХреЗ рдУрдЯреНрдЯреЛ рдХреЗрдХрд╛рд▓реЗрдирд┐рди рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред
рдФрд░ рдорд┐рдЦрд╛рдЗрд▓ рдмреЛрдбрдирд╛рд░реНрдЪреБрдХ рдХреЗ рдХреБрдЫ рд╢рдмреНрдж, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ 8 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕рдВрд╣рд┐рддрд╛ рд╢реБрд░реВ рдХреА рдереА:
рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рдореБрдЭреЗ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА: рдкрд╣рд▓реЗ рдХреНрдпрд╛ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдФрд░ рдореБрдЭреЗ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЬрд╡рд╛рдм рдорд┐рд▓рд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рд╕реЗ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдХрднреА-рдХрднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЗ рдХрд╛рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЬреЛ рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдпрд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреБрд░рдВрдд рдРрд╕реЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдирдП рд╕рд╛рд╕ рдЙрддреНрдкрд╛рдж рдмреБрдЧреАрд░рд╛ рдмрдЧрдЯреНрд░реИрдХрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкрд╕рдВрдж рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдбреЗрд╕реЗрдкреНрд╢рди рдпрд╛ рдХреЛрдбрд╕реЗрдкреНрдЯреНрд╕, рддреЛ рдмреБрдЧреАрд░рд╛ рдЖрдЬрд╝рдорд╛рдПрдБред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмреЗрд╣рддрд░ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛!
рдкреВрд░реНрдг рдЪреИрдВрдЬ рд╕рдВрд╕реНрдХрд░рдг 3.0рдЕрджреНрдпрддрди рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝