{"id":84489,"date":"2024-11-19T13:37:42","date_gmt":"2024-11-19T10:07:42","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/access-laravel-before-and-after-running-pest-tests-3mll\/"},"modified":"2024-11-19T13:37:42","modified_gmt":"2024-11-19T10:07:42","slug":"access-laravel-before-and-after-running-pest-tests-3mll","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/access-laravel-before-and-after-running-pest-tests-3mll\/","title":{"rendered":"\u0642\u0628\u0644 \u0648 \u0628\u0639\u062f \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u062a\u0633\u062a Pest \u0628\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            TL;DR: \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0628\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645 beforeAll \u0648 afterAll \u0631\u0648\u0634 \u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0622\u0641\u062a<\/p>\n<p>\u0646\u0645\u0648\u0646\u0647 \u067e\u0631\u0648\u0698\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u06cc\u0627\u0641\u062a \u0645\u062e\u0632\u0646 Github. \u0628\u06cc\u0634\u062a\u0631 \u0628\u062f\u0627\u0646\u06cc\u062f \u06a9\u067e\u0633\u0648\u0644\u060c X \u06cc\u0627 \u0628\u0644\u0648\u0627\u0633\u06a9\u06cc.<\/p>\n<p>\u0645\u0646 \u0628\u0647 \u0627\u0633\u062a\u0639\u0627\u0631\u0647 \u0627\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645 \u062a\u0627 \u0645\u0642\u0627\u0644\u0647 \u062e\u0648\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0645 \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0622\u0641\u062a \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u0645.<\/p>\n<p>\u06a9\u0644\u0648\u062f: \u062a\u0633\u062a \u0622\u0641\u062a \u0645\u0627\u0646\u0646\u062f \u0647\u0645\u0628\u0631\u06af\u0631 \u0627\u0633\u062a. \u0647\u0633\u062a\u0647 \u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u060c \u067e\u062a\u06cc \u0622\u0628\u062f\u0627\u0631 \u0627\u0633\u062a: \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0635\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u062e\u0634\u06cc \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0637\u0639\u0645 \u0631\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc \u0622\u0648\u0631\u062f. \u062f\u0631 \u0627\u0637\u0631\u0627\u0641 \u0622\u0646\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f beforeEach \u0648 afterEach \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u060c \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0627\u067e\u06cc\u0646\u06af \u0648 \u0633\u0633 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0637\u0639\u0645 \u0648 \u0632\u0645\u06cc\u0646\u0647 \u0631\u0627 \u0628\u0647 \u0647\u0631 \u0644\u0642\u0645\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c beforeAll \u0648 afterAll \u062a\u0648\u0627\u0628\u0639 \u0645\u0627\u0646\u0646\u062f buns \u0647\u0633\u062a\u0646\u062f: \u0622\u0646\u0647\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u0646\u062f. \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0628\u0627 \u0647\u0645 \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u062a\u0633\u062a \u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0639\u0627\u062f\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647\u060c \u0646\u0648\u0634\u062a\u0646 \u062a\u0633\u062a \u0622\u0641\u062a \u0645\u0627\u0646\u0646\u062f \u062f\u0631\u0633\u062a \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0647\u0645\u0628\u0631\u06af\u0631 \u062e\u0648\u0628 \u0627\u0633\u062a: \u0647\u0645\u0647 \u0645\u0648\u0627\u062f \u0645\u0647\u0645 \u0647\u0633\u062a\u0646\u062f \u0648 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0622\u0646\u0647\u0627\u0633\u062a \u06a9\u0647 \u062a\u0641\u0627\u0648\u062a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0647\u0648\u0645 \u0628\u0627\u0634\u0647 \u0628\u0627 \u062a\u0634\u06a9\u0631\u060c \u06a9\u0644\u0648\u062f.<\/p>\n<p>\u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a PestPHP\u060c $this \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a beforeAll \u0648 afterAll \u0631\u0648\u0634 \u0647\u0627\u06cc \u06cc\u06a9 \u0622\u0632\u0645\u0648\u0646 \u0627\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0647\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0647\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f:<\/p>\n<p>beforeAll()<\/p>\n<p>Executes the provided closure once before any tests are run within the current file, allowing you to perform any necessary setup or initialization that applies to all tests.<\/p>\n<p>beforeAll(function () {<br \/>\n    \/\/ Prepare something once before any of this file&#8217;s tests run&#8230;<br \/>\n});<\/p>\n<p>It&#8217;s important to note that unlike the beforeEach() hook, the $this variable is not available in the beforeAll() hook. This is because the hook runs before any tests are executed, so there is no instance of the test class or object to which the variable could refer.<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u060c \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 Pest \u0628\u0631 \u0631\u0648\u06cc PHPUnit \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0622\u0641\u062a beforeAll \u0648 afterAll \u062a\u0648\u0627\u0628\u0639 \u0628\u0631 \u0627\u0633\u0627\u0633 PHPUnit \u0647\u0633\u062a\u0646\u062f setUp \u0648 tearDown \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0647\u0631 \u0622\u0632\u0645\u0648\u0646 \u06cc\u06a9 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0627\u0645\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f Pest\u060c \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0647\u0627 \u0641\u0642\u0637 \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u0631 \u0647\u0631 \u0641\u0627\u06cc\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062c\u0627\u062f\u0648\u06cc \u0622\u0641\u062a \u0627\u0633\u062a. \u062a\u0646\u0647\u0627 \u0645\u0633\u0626\u0644\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u0627\u06cc\u0646 \u062a\u0645\u0627\u0633 \u0647\u0627 \u0647\u06cc\u0686 \u0686\u06cc\u0632 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0622\u0646 \u063a\u06cc\u0631\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a $this\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u06cc\u0627 \u062e\u0648\u0627\u0635 \u0622\u0646 \u062f\u0631 a beforeAll() \u06cc\u0627 afterAll() \u0642\u0644\u0627\u0628 \u062d\u062f\u0627\u0642\u0644 \u0646\u0647 \u0628\u062f\u0648\u0646 \u0631\u0627\u0647 \u062d\u0644 \u062e\u0627\u0635. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646 \u0631\u0627\u0647 \u062d\u0644 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f.<\/p>\n<p>\u0627\u0632 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0644\u0627\u0631\u0627\u0648\u0644\u060c PHPUnit \u0631\u0627 \u0628\u0627 Pest \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>composer remove &#8211;dev phpunit\/phpunit<\/p>\n<p>composer require &#8211;dev pestphp\/pest &#8211;with-all-dependencies<\/p>\n<p>vendor\/bin\/pest &#8211;init<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0628\u0627 vendor\/bin\/pest.<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>PASS  Tests\\Unit\\ExampleTest<br \/>\n\u2713 that true is true<\/p>\n<p>PASS  Tests\\Feature\\ExampleTest<br \/>\n\u2713 the application returns a successful response<\/p>\n<p>Tests:    2 passed (2 assertions)<br \/>\nDuration: 0.21s<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u0632 Vite \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c a Vite manifest not found \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062e\u0637\u0627 \u0631\u062e \u062f\u0647\u062f \u0628\u0631\u0627\u06cc \u062d\u0644 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c Vite \u0628\u0627\u06cc\u062f \u062f\u0631 \u0642\u0633\u0645\u062a \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0634\u0648\u062f setUp \u0631\u0648\u0634 \u0627\u0632 TestCase.php \u0641\u0627\u06cc\u0644<\/p>\n<p>tests\/TestCase.php<\/p>\n<p>namespace Tests;<\/p>\n<p>use Illuminate\\Foundation\\Testing\\TestCase as BaseTestCase;<\/p>\n<p>abstract class TestCase extends BaseTestCase<br \/>\n{<br \/>\n    protected function setUp() : void<br \/>\n    {<br \/>\n        parent::setUp();<\/p>\n<p>        $this-&gt;withoutVite();<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c Feature \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062d\u0630\u0641 \u0645\u06cc \u0634\u0648\u062f \u0627\u06cc\u0646 Feature \u0633\u067e\u0633 \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u062d\u0630\u0641 \u0634\u0648\u062f phpunit.xml \u0641\u0627\u06cc\u0644\u060c \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u062e\u0637 \u0645\u0631\u0628\u0648\u0637\u0647 \u062f\u0631 Pest.php \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c Unit\/ExampleTest.php \u0641\u0627\u06cc\u0644 \u0628\u0627 Unit\/BootloadableTest.php.<\/p>\n<p>phpunit.xml<\/p>\n<p>xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br \/>\n xmlns:xsi=&#8221;http:\/\/www.w3.org\/2001\/XMLSchema-instance&#8221;<br \/>\n         xsi:noNamespaceSchemaLocation=&#8221;vendor\/phpunit\/phpunit\/phpunit.xsd&#8221;<br \/>\n         bootstrap=&#8221;vendor\/autoload.php&#8221;<br \/>\n         colors=&#8221;true&#8221;<br \/>\n&gt;<\/p>\n<p>         name=&#8221;Unit&#8221;&gt;<br \/>\n            tests\/Unit<\/p>\n<p>            app<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>Pest.php<\/p>\n<p>use Tests\\TestCase;<\/p>\n<p>pest()-&gt;extend( TestCase::class )-&gt;in( &#8216;Unit&#8217; );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>Unit\/BootloadableTest.php<\/p>\n<p>it( &#8220;can say &#8216;Hello World !'&#8221;, function()<br \/>\n{<br \/>\n    $message = &#8216;Hello World !&#8217;;<\/p>\n<p>    echo &#8220;$message\\n&#8221;;<\/p>\n<p>    expect( $message )-&gt;toBeString()-&gt;toEqual( &#8216;Hello World !&#8217; );<br \/>\n} );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>Hello World !<\/p>\n<p>PASS  Tests\\Unit\\BootloadableTest<br \/>\n\u2713 it can say &#8216;Hello World !&#8217;                                                                                                                                                                                            <\/p>\n<p>Tests:    1 passed (2 assertions)<br \/>\nDuration: 0.07s<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0634\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06cc\u06a9\u0633\u0627\u0646 \u062f\u0631 \u0628\u06cc\u0646 \u062a\u0633\u062a \u0647\u0627 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u0634\u0648\u062f php artisan migrate &#8211;seed.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u06a9\u0645\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f DatabaseSeeder.php \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062f\u0648 User \u062f\u0631 \u0647\u0631 seed.<\/p>\n<p>database\/seeders\/DatabaseSeeder.php<\/p>\n<p>namespace Database\\Seeders;<\/p>\n<p>use Illuminate\\Database\\Seeder;<br \/>\nuse App\\Models\\User;<\/p>\n<p>class DatabaseSeeder extends Seeder<br \/>\n{<br \/>\n    public function run() : void<br \/>\n    {<br \/>\n        User::factory( 2 )-&gt;create();<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0634\u0631\u0648\u0639 \u06cc\u06a9 \u0622\u0632\u0645\u0648\u0646<\/p>\n<p>tests\/Unit\/BootloadableTest.php<\/p>\n<p>use App\\Models\\User;<\/p>\n<p>it( &#8220;can dump users&#8221;, function()<br \/>\n{<br \/>\n    $this-&gt;artisan( &#8216;migrate:fresh &#8211;seed&#8217; );<\/p>\n<p>    dd( User::select( &#8216;name&#8217;, &#8217;email&#8217; )-&gt;get()-&gt;toArray() );<br \/>\n} );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>array:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Evie Cronin&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;ebert.paolo@example.org&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Heidi Dietrich&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;orempel@example.net&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:10<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0634\u0631\u0648\u0639 \u062f\u0648 \u062a\u0633\u062a \u06cc\u06a9\u0633\u0627\u0646\u060c \u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u0648\u0631 Artisan \u062f\u0631 beforeEach() \u0642\u0644\u0627\u0628<\/p>\n<p>tests\/Unit\/BootloadableTest.php<\/p>\n<p>use App\\Models\\User;<\/p>\n<p>beforeEach( function()<br \/>\n{<br \/>\n    $this-&gt;artisan( &#8216;migrate:fresh &#8211;seed&#8217; );<br \/>\n} );<\/p>\n<p>it( &#8220;can dump users for the first time&#8221;, function()<br \/>\n{<br \/>\n    dump( User::select( &#8216;name&#8217;, &#8217;email&#8217; )-&gt;get()-&gt;toArray() );<br \/>\n} );<\/p>\n<p>it( &#8220;can dump users for the second time&#8221;, function()<br \/>\n{<br \/>\n    dd( User::select( &#8216;name&#8217;, &#8217;email&#8217; )-&gt;get()-&gt;toArray() );<br \/>\n} );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>array:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Mr. Elmer Jerde I&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;hector.okuneva@example.net&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Prof. Rupert Toy&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;bosco.ferne@example.com&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:14<br \/>\narray:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Nona Howe MD&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;zulauf.jarred@example.com&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Abbie O&#8217;Conner&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;lhowell@example.net&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:19<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0627\u0633\u062a\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 beforeEach\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0646\u0627\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u0642\u0628\u0644 \u0627\u0632 \u0647\u0631 \u062a\u0633\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0686\u0631\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u06cc\u062f beforeAll \u0628\u0647 \u062c\u0627\u06cc \u0642\u0644\u0627\u0628\u061f<\/p>\n<p>tests\/Unit\/BootloadableTest.php  \u0631\u0648\u06cc \u062e\u0637 6<\/p>\n<p>&#8230;<\/p>\n<p>beforeAll( function()<br \/>\n{<br \/>\n    $this-&gt;artisan( &#8216;migrate:fresh &#8211;seed&#8217; );<br \/>\n} );<\/p>\n<p>&#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>FAIL  Tests\\Unit\\BootloadableTest<br \/>\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\nFAILED  Tests\\Unit\\BootloadableTest &gt; <\/p>\n<p>Using $this when not in object context<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 $this \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a beforeAll \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u0648 \u0646\u0647 \u0646\u0645\u0627\u0647\u0627. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c Artisan::call(&#8216;migrate:fresh &#8211;seed&#8217;) \u062f\u0631 \u0627\u06cc\u0646 \u0632\u0645\u06cc\u0646\u0647 \u0646\u06cc\u0632 \u06a9\u0627\u0631 \u0646\u0645\u06cc \u06a9\u0646\u062f. \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f Bootloadable \u0635\u0641\u062a<\/p>\n<p>\u062e\u0635\u06cc\u0635\u0647 \u063a\u0644\u0628\u0647 \u0645\u06cc \u06a9\u0646\u062f setUp \u0648 tearDown \u062a\u0648\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0648 \u0631\u0648\u0634 \u062c\u062f\u06cc\u062f: initialize \u0648 finalize. \u0627\u06cc\u0646 initialize \u0631\u0648\u0634 \u06cc\u06a9 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f\u060c \u0645\u0627\u0646\u0646\u062f beforeAll\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 finalize \u0631\u0648\u0634 \u0646\u06cc\u0632 \u06cc\u06a9 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f\u060c \u0645\u0627\u0646\u0646\u062f afterAll. <\/p>\n<p>tests\\Traits\\Bootloadable.php<\/p>\n<p>namespace Tests\\Traits;<\/p>\n<p>use Illuminate\\Support\\Arr;<br \/>\nuse Illuminate\\Support\\Collection;<br \/>\nuse Illuminate\\Support\\Str;<br \/>\nuse Pest\\TestSuite;<\/p>\n<p>trait Bootloadable<br \/>\n{<br \/>\n    private static int $count = 0;<br \/>\n    private static Collection $tests;<\/p>\n<p>    protected function setUp() : void<br \/>\n    {<br \/>\n        parent::setUp();<\/p>\n<p>        if( ! self::$count )<br \/>\n        {<br \/>\n            $this-&gt;init();<\/p>\n<p>            if( method_exists( self::class, &#8216;initialize&#8217; ) ) $this-&gt;initialize();<br \/>\n        }<\/p>\n<p>        self::$count++;<br \/>\n    }<\/p>\n<p>    protected function tearDown() : void<br \/>\n    {<br \/>\n        if( count( self::$tests ) == self::$count )<br \/>\n        {<br \/>\n            if( method_exists( self::class, &#8216;finalize&#8217; ) ) $this-&gt;finalize();<br \/>\n        }<\/p>\n<p>        parent::tearDown();<br \/>\n    }<\/p>\n<p>    private function init() : void<br \/>\n    {<br \/>\n        $repository = TestSuite::getInstance()-&gt;tests;<\/p>\n<p>        $data = [];<\/p>\n<p>        foreach( $repository-&gt;getFilenames() as $file )<br \/>\n        {<br \/>\n            $factory = $repository-&gt;get( $file );<\/p>\n<p>            $filename = Str::of( $file )-&gt;basename()-&gt;explode( &#8216;.&#8217; )-&gt;first();<\/p>\n<p>            if( $factory-&gt;class === self::class ) $data = [ &#8230;$data, &#8230;[ $filename =&gt; $factory-&gt;methods ] ];<br \/>\n        }<\/p>\n<p>        $cases = Collection::make( Arr::dot( $data ) );<\/p>\n<p>        $only = $cases-&gt;filter( fn( $case ) =&gt; Collection::make( $case-&gt;groups )-&gt;contains( &#8216;__pest_only&#8217; ) );<\/p>\n<p>        self::$tests = ( $only-&gt;isEmpty() ? $cases : $only )-&gt;keys()-&gt;map( fn( $key ) =&gt; Str::of( $key )-&gt;kebab );<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 setUp \u0648 tearDown \u0631\u0648\u0634 \u0647\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u062a\u0645\u0627\u0633 \u0647\u0633\u062a\u0646\u062f initialize \u0648 finalize. \u0645\u0646\u0637\u0642 \u0627\u0635\u0644\u06cc \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f init \u0631\u0648\u0634<\/p>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634 \u062a\u0639\u062f\u0627\u062f \u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 initialize \u0631\u0648\u0634 \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0634\u0645\u0627\u0631\u0634 \u0627\u0648\u0644\u06cc\u0647 0 \u0628\u0627\u0634\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f $count. \u0627\u06cc\u0646 finalize \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u062a\u0639\u062f\u0627\u062f \u0628\u0647 \u0637\u0648\u0644 \u0639\u062f\u062f \u0628\u0631\u0633\u062f $tests \u0622\u0631\u0627\u06cc\u0647\u060c \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 init \u062a\u0627\u0628\u0639<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 initialize \u0631\u0648\u0634\u060c \u0628\u0627\u06cc\u062f \u0635\u0641\u062a \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f TestCase \u0648 \u0631\u0648\u0634 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>tests\/TestCase.php<\/p>\n<p>namespace Tests;<\/p>\n<p>use Illuminate\\Foundation\\Testing\\TestCase as BaseTestCase;<br \/>\nuse Tests\\Traits\\Bootloadable;<\/p>\n<p>abstract class TestCase extends BaseTestCase<br \/>\n{<br \/>\n    use Bootloadable;<\/p>\n<p>    protected function initialize() : void<br \/>\n    {<br \/>\n        $this-&gt;artisan( &#8216;migrate:fresh &#8211;seed&#8217; );<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 initialize \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u0648\u062f setUp \u0631\u0648\u0634 \u062f\u0631 \u0645\u0648\u0631\u062f $this-&gt;withoutVite\u060c \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f initialize.<\/p>\n<p>\u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0642\u0628\u0644\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f beforeAll() \u0627\u0632 BootloadableTest \u0641\u0627\u06cc\u0644 \u0633\u067e\u0633\u060c \u062f\u0648\u06cc\u062f\u0646 vendor\/bin\/pest \u062f\u0648 \u0628\u0627\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a: \u062f\u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0648 \u062f\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc.<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>array:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Prof. Moises Skiles IV&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;frederique.nitzsche@example.com&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Prof. Cleve Oberbrunner&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;madelynn.hane@example.net&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:8<br \/>\narray:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Prof. Moises Skiles IV&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;frederique.nitzsche@example.com&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Prof. Cleve Oberbrunner&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;madelynn.hane@example.net&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:13<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>array:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Doug Marvin&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;nash.schoen@example.com&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Joaquin Jacobi&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;neoma38@example.net&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:8<br \/>\narray:2 [<br \/>\n  0 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Doug Marvin&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;nash.schoen@example.com&#8221;<br \/>\n  ]\n  1 =&gt; array:2 [<br \/>\n    &#8220;name&#8221; =&gt; &#8220;Joaquin Jacobi&#8221;<br \/>\n    &#8220;email&#8221; =&gt; &#8220;neoma38@example.net&#8221;<br \/>\n  ]\n] \/\/ tests\/Unit\/BootloadableTest.php:13<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0622\u0632\u0645\u0648\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062a\u0633\u062a \u0627\u0648\u0644 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0648\u0644 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u062a\u0633\u062a \u062f\u0648\u0645 \u0646\u0627\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0634\u062f\u0647 \u0627\u0632 \u062a\u0633\u062a \u0627\u0648\u0644 \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>Tests\/Unit\/BootloadableTest.php<\/p>\n<p>use App\\Models\\User;<\/p>\n<p>beforeEach( function()<br \/>\n{<br \/>\n    $this-&gt;user = User::first();<\/p>\n<p>    $this-&gt;new = &#8220;Capsules Codes&#8221;;<br \/>\n} );<\/p>\n<p>it( &#8220;can modify first user name between two tests&#8221;, function()<br \/>\n{<br \/>\n    $name = $this-&gt;user-&gt;name;<\/p>\n<p>    echo $this-&gt;user-&gt;name;<\/p>\n<p>    expect( $this-&gt;user-&gt;name )-&gt;toBe( $name );<\/p>\n<p>    $this-&gt;user-&gt;name = $this-&gt;new;<\/p>\n<p>    $this-&gt;user-&gt;save();<br \/>\n} );<\/p>\n<p>it( &#8220;can verify first user name between two tests&#8221;, function()<br \/>\n{<br \/>\n    echo &#8221; &gt; {$this-&gt;user-&gt;name} \\n&#8221;;<\/p>\n<p>    expect( $this-&gt;user-&gt;name )-&gt;toBe( $this-&gt;new );<br \/>\n} );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u067e\u0633 \u0627\u0632 \u062f\u0648 \u0627\u0639\u062f\u0627\u0645 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0632 vendor\/bin\/pest \u0641\u0631\u0645\u0627\u0646<\/p>\n<p>&gt; vendor\/bin\/pest <\/p>\n<p>Esteban Raynor &gt; Capsules Codes<\/p>\n<p>PASS  Tests\\Unit\\BootloadableTest<br \/>\n\u2713 it can modify first user name between two tests<br \/>\n\u2713 it can verify first user name between two tests<\/p>\n<p>Tests:    2 passed (2 assertions)<br \/>\nDuration: 0.40s<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>Demario Corkery &gt; Capsules Codes<\/p>\n<p>PASS  Tests\\Unit\\BootloadableTest<br \/>\n\u2713 it can modify first user name between two tests<br \/>\n\u2713 it can verify first user name between two tests<\/p>\n<p>Tests:    2 passed (2 assertions)<br \/>\nDuration: 0.39s<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631 \u0647\u0631 \u062a\u0633\u062a \u062f\u0631 \u0641\u0627\u06cc\u0644 \u062e\u0648\u062f\u0634 \u0642\u0631\u0627\u0631 \u06af\u06cc\u0631\u062f \u0686\u0647 \u0627\u062a\u0641\u0627\u0642\u06cc \u0645\u06cc \u0627\u0641\u062a\u062f\u061f<\/p>\n<p>Unit\/FirstTest.php<\/p>\n<p>use App\\Models\\User;<\/p>\n<p>beforeEach( function()<br \/>\n{<br \/>\n    $this-&gt;user = User::first();<\/p>\n<p>    $this-&gt;new = &#8220;Capsules Codes&#8221;;<br \/>\n} );<\/p>\n<p>it( &#8220;can modify first user name between two tests&#8221;, function()<br \/>\n{<br \/>\n    $name = $this-&gt;user-&gt;name;<\/p>\n<p>    echo &#8220;{$this-&gt;user-&gt;name} &gt; $this-&gt;new \\n&#8221;;<\/p>\n<p>    expect( $this-&gt;user-&gt;name )-&gt;toBe( $name );<\/p>\n<p>    $this-&gt;user-&gt;name = $this-&gt;new;<\/p>\n<p>    $this-&gt;user-&gt;save();<br \/>\n} );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>Unit\/SecondTest.php<\/p>\n<p>use App\\Models\\User;<\/p>\n<p>beforeEach( function()<br \/>\n{<br \/>\n    $this-&gt;user = User::first();<\/p>\n<p>    $this-&gt;new = &#8220;Capsules Codes&#8221;;<br \/>\n} );<\/p>\n<p>it( &#8220;can verify first user name between two tests&#8221;, function()<br \/>\n{<br \/>\n    expect( $this-&gt;user-&gt;name )-&gt;toBe( $this-&gt;new );<br \/>\n} );<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>vendor\/bin\/pest<\/p>\n<p>Mrs. Laurine Ebert V &gt; Capsules Codes<\/p>\n<p>PASS  Tests\\Unit\\FirstTest<br \/>\n\u2713 it can modify first user name between two test files                                                                                                                                                                                           0.08s<\/p>\n<p>PASS  Tests\\Unit\\SecondTest<br \/>\n\u2713 it can verify first user name between two test files                                                                                                                                                                                      0.01s<\/p>\n<p>Tests:    2 passed (2 assertions)<br \/>\nDuration: 0.13s<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631 \u062e\u0644\u0627\u0641 Pest \u06a9\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f beforeAll \u0648 afterAll \u0631\u0648\u0634\u200c\u0647\u0627\u06cc\u06cc \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u200c\u0647\u0627\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644\u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9TestCase \u0627\u0633\u0627\u0633 \u0628\u0647 \u062c\u0627\u06cc \u0641\u0627\u06cc\u0644. \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc initialize \u0648 finalize \u0631\u0648\u0634\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0622\u0632\u0645\u0648\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647\u060c \u06a9\u0645\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 Trait \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>tests\/Traits\/Bootloadable.php<\/p>\n<p>namespace Tests\\Traits;<\/p>\n<p>use Illuminate\\Support\\Arr;<br \/>\nuse Illuminate\\Support\\Collection;<br \/>\nuse Illuminate\\Support\\Str;<br \/>\nuse Pest\\TestSuite;<\/p>\n<p>trait Bootloadable<br \/>\n{<br \/>\n    private static int $count = 0;<br \/>\n    private static array $tests;<br \/>\n    private static string $current;<\/p>\n<p>    protected function setUp() : void<br \/>\n    {<br \/>\n        parent::setUp();<\/p>\n<p>        self::$current = array_reverse( explode( &#8216;\\\\&#8217;, debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 2 )[ 1 ][ &#8216;class&#8217; ] ) )[ 0 ];<\/p>\n<p>        if( ! isset( self::$tests ) )<br \/>\n        {<br \/>\n            $this-&gt;init();<br \/>\n        }<\/p>\n<p>        if( ! self::$count )<br \/>\n        {<br \/>\n            if( method_exists( self::class, &#8216;initialize&#8217; ) ) $this-&gt;initialize( self::$current );<br \/>\n        }<\/p>\n<p>        self::$count++;<br \/>\n    }<\/p>\n<p>    protected function tearDown() : void<br \/>\n    {<br \/>\n        if(  self::$tests[ self::$current ] == self::$count )<br \/>\n        {<br \/>\n            if( method_exists( self::class, &#8216;finalize&#8217; ) ) $this-&gt;finalize( self::$current );<\/p>\n<p>            self::$count = 0;<br \/>\n        }<\/p>\n<p>        parent::tearDown();<br \/>\n    }<\/p>\n<p>    private function init() : void<br \/>\n    {<br \/>\n        $repository = TestSuite::getInstance()-&gt;tests;<\/p>\n<p>        $data = [];<\/p>\n<p>        foreach( $repository-&gt;getFilenames() as $file )<br \/>\n        {<br \/>\n            $factory = $repository-&gt;get( $file );<\/p>\n<p>            $filename = Str::of( $file )-&gt;basename()-&gt;explode( &#8216;.&#8217; )-&gt;first();<\/p>\n<p>            if( $factory-&gt;class === self::class ) $data = [ &#8230;$data, &#8230;[ $filename =&gt; count( $factory-&gt;methods ) ] ];<br \/>\n        }<\/p>\n<p>        self::$tests = $data;<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u0627\u0645 \u0622\u0632\u0645\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u0634\u0648\u062f debug_backtrace \u062a\u0627\u0628\u0639<br \/>\n\u0645\u062a\u063a\u06cc\u0631 self::$tests \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0627\u0646\u062c\u0645\u0646\u06cc \u0627\u0633\u062a\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0631 \u06a9\u0644\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a\u060c \u0648 \u0647\u0631 \u0645\u0642\u062f\u0627\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062a\u0639\u062f\u0627\u062f \u062a\u0633\u062a \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0622\u0646 \u0627\u0633\u062a.<br \/>\n\u0645\u062a\u063a\u06cc\u0631 self::$count \u06cc\u06a9 \u0628\u0627\u0631 \u0628\u0647 \u0635\u0641\u0631 \u0628\u0627\u0632\u0646\u0634\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f finalize \u0631\u0648\u0634 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 \u0622\u062e\u0631: \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f TestCase \u0641\u0627\u06cc\u0644 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0622\u0646 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>tests\/TestCase.php<\/p>\n<p>namespace Tests;<\/p>\n<p>use Illuminate\\Foundation\\Testing\\TestCase as BaseTestCase;<br \/>\nuse Tests\\Traits\\Bootloadable;<br \/>\nuse Illuminate\\Support\\Facades\\App;<br \/>\nuse Illuminate\\Support\\Facades\\File;<\/p>\n<p>abstract class TestCase extends BaseTestCase<br \/>\n{<br \/>\n    use Bootloadable;<\/p>\n<p>    protected function initialize( $filename ) : void<br \/>\n    {<br \/>\n        if( $filename == &#8220;FirstTest&#8221; )<br \/>\n        {<br \/>\n            $this-&gt;artisan( &#8216;migrate:fresh &#8211;seed&#8217; );<br \/>\n        }<\/p>\n<p>        if( $filename == &#8220;SecondTest&#8221; )<br \/>\n        {<br \/>\n            $this-&gt;artisan( &#8216;migrate:fresh &#8211;seed&#8217; );<br \/>\n        }<br \/>\n    }<\/p>\n<p>    protected function finalize( $filename ) : void<br \/>\n    {<br \/>\n        if( $filename == &#8220;FirstTest&#8221; )<br \/>\n        {<br \/>\n            $this-&gt;artisan( &#8216;migrate:reset&#8217; );<br \/>\n        }<\/p>\n<p>        if( $filename == &#8220;SecondTest&#8221; )<br \/>\n        {<br \/>\n            $this-&gt;artisan( &#8216;migrate:reset&#8217; );<br \/>\n        }<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f.<\/p>\n<p>&gt; vendor\/bin\/test<\/p>\n<p>Brice Fisher &gt; Capsules Codes<\/p>\n<p>   PASS  Tests\\Unit\\FirstTest<br \/>\n  \u2713 it can modify first user name between two tests                                                                                                                                                                                           0.36s<\/p>\n<p>   FAIL  Tests\\Unit\\SecondTest<br \/>\n  \u2a2f it can verify first user name between two tests                                                                                                                                                                                           0.03s<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n   FAILED  Tests\\Unit\\SecondTest &gt; it can verify first user name between two tests<br \/>\n  Failed asserting that two strings are identical.<br \/>\n  -&#8216;Capsules Codes&#8217;<br \/>\n  +&#8217;Tremayne Spinka&#8217;<\/p>\n<p>  at tests\/Unit\/SecondTest.php:18<br \/>\n     14\u2595<br \/>\n     15\u2595<br \/>\n     16\u2595 it( &#8220;can verify first user name between two tests&#8221;, function()<br \/>\n     17\u2595 {<br \/>\n  \u279c  18\u2595     expect( $this-&gt;user-&gt;name )-&gt;toBe( $this-&gt;new );<br \/>\n     19\u2595 } );<br \/>\n     20\u2595<\/p>\n<p>  1   tests\/Unit\/SecondTest.php:18<\/p>\n<p>  Tests:    1 failed, 1 passed (2 assertions)<br \/>\n  Duration: 0.43s<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 Brice Fisher \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a Tremayne Spinka!<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0647 \u062f\u0633\u062a \u0622\u0645\u062f\u0647 \u0628\u0627 \u062a\u06a9\u0631\u0627\u0631 \u0627\u0633\u062a BootloadableTest \u0631\u0627 \u0628\u0647 \u062f\u0648 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0632\u0627 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f. [ Make sure to replace &#8220;Capsules Codes&#8221; with &#8220;Pest PHP&#8221; in the second file ].<\/p>\n<p>&gt; vendor\/bin\/pest<\/p>\n<p>Ernestine Dietrich III &gt; Capsules Codes<\/p>\n<p>PASS  Tests\\Unit\\FirstTest<br \/>\n\u2713 it can modify first user name between two test files<br \/>\n\u2713 it can verify first user name between two test files<\/p>\n<p>Dr. Nya Gusikowski &gt; Pest PHP<\/p>\n<p>PASS  Tests\\Unit\\SecondTest<br \/>\n\u2713 it can modify first user name between two test files<br \/>\n\u2713 it can verify first user name between two test files<\/p>\n<p>Tests:    4 passed (4 assertions)<br \/>\nDuration: 0.42s<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062e\u0648\u0634\u062d\u0627\u0644\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0645\u06a9 \u06a9\u0631\u062f.<\/p>\n<div data-article-id=\"2111789\" id=\"article-body\">\n<p>TL;DR: \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0628\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645 <code>beforeAll<\/code> \u0648 <code>afterAll<\/code> \u0631\u0648\u0634 \u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0622\u0641\u062a<\/p>\n<p> <\/p>\n<p>\u0646\u0645\u0648\u0646\u0647 \u067e\u0631\u0648\u0698\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u06cc\u0627\u0641\u062a <strong>\u0645\u062e\u0632\u0646 Github<\/strong>. \u0628\u06cc\u0634\u062a\u0631 \u0628\u062f\u0627\u0646\u06cc\u062f <strong>\u06a9\u067e\u0633\u0648\u0644<\/strong>\u060c <strong>X<\/strong> \u06cc\u0627 <strong>\u0628\u0644\u0648\u0627\u0633\u06a9\u06cc<\/strong>.<\/p>\n<p> <\/p>\n<p>\u0645\u0646 \u0628\u0647 \u0627\u0633\u062a\u0639\u0627\u0631\u0647 \u0627\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645 \u062a\u0627 \u0645\u0642\u0627\u0644\u0647 \u062e\u0648\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0645 \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0622\u0641\u062a \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u0645.<\/p>\n<p> <\/p>\n<p>\u06a9\u0644\u0648\u062f: \u062a\u0633\u062a \u0622\u0641\u062a \u0645\u0627\u0646\u0646\u062f \u0647\u0645\u0628\u0631\u06af\u0631 \u0627\u0633\u062a. \u0647\u0633\u062a\u0647 \u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u060c \u067e\u062a\u06cc \u0622\u0628\u062f\u0627\u0631 \u0627\u0633\u062a: \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0635\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u062e\u0634\u06cc \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0637\u0639\u0645 \u0631\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc \u0622\u0648\u0631\u062f. \u062f\u0631 \u0627\u0637\u0631\u0627\u0641 \u0622\u0646\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f <code>beforeEach<\/code> \u0648 <code>afterEach<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u060c \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0627\u067e\u06cc\u0646\u06af \u0648 \u0633\u0633 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0637\u0639\u0645 \u0648 \u0632\u0645\u06cc\u0646\u0647 \u0631\u0627 \u0628\u0647 \u0647\u0631 \u0644\u0642\u0645\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c <code>beforeAll<\/code> \u0648 <code>afterAll<\/code> \u062a\u0648\u0627\u0628\u0639 \u0645\u0627\u0646\u0646\u062f buns \u0647\u0633\u062a\u0646\u062f: \u0622\u0646\u0647\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u0646\u062f. \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0628\u0627 \u0647\u0645 \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u062a\u0633\u062a \u06a9\u0627\u0645\u0644\u0627 \u0645\u062a\u0639\u0627\u062f\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647\u060c \u0646\u0648\u0634\u062a\u0646 \u062a\u0633\u062a \u0622\u0641\u062a \u0645\u0627\u0646\u0646\u062f \u062f\u0631\u0633\u062a \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0647\u0645\u0628\u0631\u06af\u0631 \u062e\u0648\u0628 \u0627\u0633\u062a: \u0647\u0645\u0647 \u0645\u0648\u0627\u062f \u0645\u0647\u0645 \u0647\u0633\u062a\u0646\u062f \u0648 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0622\u0646\u0647\u0627\u0633\u062a \u06a9\u0647 \u062a\u0641\u0627\u0648\u062a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p> <\/p>\n<p>\u0647\u0648\u0645 \u0628\u0627\u0634\u0647 \u0628\u0627 \u062a\u0634\u06a9\u0631\u060c \u06a9\u0644\u0648\u062f.<\/p>\n<p> <\/p>\n<p>\u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 <strong>\u0645\u0633\u062a\u0646\u062f\u0627\u062a PestPHP<\/strong>\u060c <code>$this<\/code> \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a <code>beforeAll<\/code> \u0648 <code>afterAll<\/code> \u0631\u0648\u0634 \u0647\u0627\u06cc \u06cc\u06a9 \u0622\u0632\u0645\u0648\u0646 \u0627\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0647\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0647\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f:<\/p>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>beforeAll()\n\nExecutes the provided closure once before any tests are run within the current file, allowing you to perform any necessary setup or initialization that applies to all tests.\n\nbeforeAll(function () {\n    \/\/ Prepare something once before any of this file's tests run...\n});\n\n\nIt's important to note that unlike the beforeEach() hook, the $this variable is not available in the beforeAll() hook. This is because the hook runs before any tests are executed, so there is no instance of the test class or object to which the variable could refer.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u060c \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 Pest \u0628\u0631 \u0631\u0648\u06cc PHPUnit \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0622\u0641\u062a <code>beforeAll<\/code> \u0648 <code>afterAll<\/code> \u062a\u0648\u0627\u0628\u0639 \u0628\u0631 \u0627\u0633\u0627\u0633 PHPUnit \u0647\u0633\u062a\u0646\u062f <code>setUp<\/code> \u0648 <code>tearDown<\/code> \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0647\u0631 \u0622\u0632\u0645\u0648\u0646 \u06cc\u06a9 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0627\u0645\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f Pest\u060c \u0627\u06cc\u0646 \u0647\u0648\u06a9 \u0647\u0627 \u0641\u0642\u0637 \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u0631 \u0647\u0631 \u0641\u0627\u06cc\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u062c\u0627\u062f\u0648\u06cc \u0622\u0641\u062a \u0627\u0633\u062a. \u062a\u0646\u0647\u0627 \u0645\u0633\u0626\u0644\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u0627\u06cc\u0646 \u062a\u0645\u0627\u0633 \u0647\u0627 \u0647\u06cc\u0686 \u0686\u06cc\u0632 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a.<\/p>\n<p> <\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0622\u0646 \u063a\u06cc\u0631\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a <code>$this<\/code>\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u06cc\u0627 \u062e\u0648\u0627\u0635 \u0622\u0646 \u062f\u0631 a <code>beforeAll()<\/code> \u06cc\u0627 <code>afterAll()<\/code> \u0642\u0644\u0627\u0628 \u062d\u062f\u0627\u0642\u0644 \u0646\u0647 \u0628\u062f\u0648\u0646 \u0631\u0627\u0647 \u062d\u0644 \u062e\u0627\u0635. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646 \u0631\u0627\u0647 \u062d\u0644 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f.<\/p>\n<p> <\/p>\n<p>\u0627\u0632 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0644\u0627\u0631\u0627\u0648\u0644\u060c PHPUnit \u0631\u0627 \u0628\u0627 Pest \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>composer remove <span class=\"nt\">--dev<\/span> phpunit\/phpunit\n\ncomposer require <span class=\"nt\">--dev<\/span> pestphp\/pest <span class=\"nt\">--with-all-dependencies<\/span>\n\nvendor\/bin\/pest <span class=\"nt\">--init<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0628\u0627 <code>vendor\/bin\/pest<\/code>.<\/p>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> vendor\/bin\/pest\n\nPASS  Tests<span class=\"se\">\\U<\/span>nit<span class=\"se\">\\E<\/span>xampleTest\n\u2713 that <span class=\"nb\">true <\/span>is <span class=\"nb\">true\n\n<\/span>PASS  Tests<span class=\"se\">\\F<\/span>eature<span class=\"se\">\\E<\/span>xampleTest\n\u2713 the application returns a successful response\n\n\nTests:    2 passed <span class=\"o\">(<\/span>2 assertions<span class=\"o\">)<\/span>\nDuration: 0.21s\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0627\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u0632 Vite \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c a <code>Vite manifest not found<\/code> \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062e\u0637\u0627 \u0631\u062e \u062f\u0647\u062f \u0628\u0631\u0627\u06cc \u062d\u0644 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c Vite \u0628\u0627\u06cc\u062f \u062f\u0631 \u0642\u0633\u0645\u062a \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0634\u0648\u062f <code>setUp<\/code> \u0631\u0648\u0634 \u0627\u0632 <code>TestCase.php<\/code> \u0641\u0627\u06cc\u0644<\/p>\n<p> <\/p>\n<p><code>tests\/TestCase.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">Tests<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Foundation\\Testing\\TestCase<\/span> <span class=\"k\">as<\/span> <span class=\"nc\">BaseTestCase<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">abstract<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">TestCase<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">BaseTestCase<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">setUp<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">parent<\/span><span class=\"o\">::<\/span><span class=\"nf\">setUp<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">withoutVite<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c <code>Feature<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062d\u0630\u0641 \u0645\u06cc \u0634\u0648\u062f \u0627\u06cc\u0646 <code>Feature<\/code> \u0633\u067e\u0633 \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u062d\u0630\u0641 \u0634\u0648\u062f <code>phpunit.xml<\/code> \u0641\u0627\u06cc\u0644\u060c \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u062e\u0637 \u0645\u0631\u0628\u0648\u0637\u0647 \u062f\u0631 <code>Pest.php<\/code> \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c <code>Unit\/ExampleTest.php<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0627 <code>Unit\/BootloadableTest.php<\/code>.<\/p>\n<p> <\/p>\n<p><code>phpunit.xml<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"\/><span class=\"n\">xml<\/span> <span class=\"n\">version<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"1.0\"<\/span> <span class=\"n\">encoding<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"UTF-8\"<\/span><span class=\"cp\">?&gt;<\/span>\n<span class=\"nt\"><phpunit> <span class=\"na\">xmlns:xsi=<\/span><span class=\"s\">\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span>\n         <span class=\"na\">xsi:noNamespaceSchemaLocation=<\/span><span class=\"s\">\"vendor\/phpunit\/phpunit\/phpunit.xsd\"<\/span>\n         <span class=\"na\">bootstrap=<\/span><span class=\"s\">\"vendor\/autoload.php\"<\/span>\n         <span class=\"na\">colors=<\/span><span class=\"s\">\"true\"<\/span>\n<span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\"><testsuites\/><\/span>\n        <span class=\"nt\"><testsuite> <span class=\"na\">name=<\/span><span class=\"s\">\"Unit\"<\/span><span class=\"nt\">&gt;<\/span>\n            <span class=\"nt\"><directory\/><\/span>tests\/Unit<span class=\"nt\"\/>\n        <span class=\"nt\"\/><\/testsuite><\/span>\n    <span class=\"nt\"\/>\n    <span class=\"nt\"><source\/><\/span>\n        <span class=\"nt\"><include\/><\/span>\n            <span class=\"nt\"><directory\/><\/span>app<span class=\"nt\"\/>\n        <span class=\"nt\"\/>\n    <span class=\"nt\"\/>\n<span class=\"nt\"\/><\/phpunit><\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p><code>Pest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code>\n<span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Tests\\TestCase<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nf\">pest<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">extend<\/span><span class=\"p\">(<\/span> <span class=\"nc\">TestCase<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">in<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'Unit'<\/span> <span class=\"p\">);<\/span>\n\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p><code>Unit\/BootloadableTest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can say 'Hello World !'\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$message<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Hello World !'<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">echo<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$message<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nf\">expect<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$message<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toBeString<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toEqual<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'Hello World !'<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> vendor\/bin\/pest\n\nHello World <span class=\"o\">!<\/span>\n\nPASS  Tests<span class=\"se\">\\U<\/span>nit<span class=\"se\">\\B<\/span>ootloadableTest\n\u2713 it can say <span class=\"s1\">'Hello World !'<\/span>                                                                                                                                                                                            \n\nTests:    1 passed <span class=\"o\">(<\/span>2 assertions<span class=\"o\">)<\/span>\nDuration: 0.07s\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0634\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06cc\u06a9\u0633\u0627\u0646 \u062f\u0631 \u0628\u06cc\u0646 \u062a\u0633\u062a \u0647\u0627 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u0634\u0648\u062f <code>php artisan migrate --seed<\/code>.<\/p>\n<p> <\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u06a9\u0645\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <code>DatabaseSeeder.php<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062f\u0648 <code>User<\/code> \u062f\u0631 \u0647\u0631 <code>seed<\/code>.<\/p>\n<p> <\/p>\n<p><code>database\/seeders\/DatabaseSeeder.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">Database\\Seeders<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Database\\Seeder<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">DatabaseSeeder<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Seeder<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">run<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">factory<\/span><span class=\"p\">(<\/span> <span class=\"mi\">2<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">create<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u062f\u0631 \u0634\u0631\u0648\u0639 \u06cc\u06a9 \u0622\u0632\u0645\u0648\u0646<\/p>\n<p> <\/p>\n<p><code>tests\/Unit\/BootloadableTest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can dump users\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:fresh --seed'<\/span> <span class=\"p\">);<\/span>\n\n    <span class=\"nf\">dd<\/span><span class=\"p\">(<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">select<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'name'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'email'<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toArray<\/span><span class=\"p\">()<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> vendor\/bin\/pest\n\narray:2 <span class=\"o\">[<\/span>\n  0 <span class=\"o\">=&gt;<\/span> array:2 <span class=\"o\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Evie Cronin\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"ebert.paolo@example.org\"<\/span>\n  <span class=\"o\">]<\/span>\n  1 <span class=\"o\">=&gt;<\/span> array:2 <span class=\"o\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Heidi Dietrich\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"orempel@example.net\"<\/span>\n  <span class=\"o\">]<\/span>\n<span class=\"o\">]<\/span> \/\/ tests\/Unit\/BootloadableTest.php:10\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u062f\u0631 \u0634\u0631\u0648\u0639 \u062f\u0648 \u062a\u0633\u062a \u06cc\u06a9\u0633\u0627\u0646\u060c \u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u0648\u0631 Artisan \u062f\u0631 <code>beforeEach()<\/code> \u0642\u0644\u0627\u0628<\/p>\n<p> <\/p>\n<p><code>tests\/Unit\/BootloadableTest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nf\">beforeEach<\/span><span class=\"p\">(<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:fresh --seed'<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can dump users for the first time\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nf\">dump<\/span><span class=\"p\">(<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">select<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'name'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'email'<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toArray<\/span><span class=\"p\">()<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can dump users for the second time\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nf\">dd<\/span><span class=\"p\">(<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">select<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'name'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'email'<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toArray<\/span><span class=\"p\">()<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> vendor\/bin\/pest\n\narray:2 <span class=\"o\">[<\/span>\n  0 <span class=\"o\">=&gt;<\/span> array:2 <span class=\"o\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Mr. Elmer Jerde I\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"hector.okuneva@example.net\"<\/span>\n  <span class=\"o\">]<\/span>\n  1 <span class=\"o\">=&gt;<\/span> array:2 <span class=\"o\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Prof. Rupert Toy\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"bosco.ferne@example.com\"<\/span>\n  <span class=\"o\">]<\/span>\n<span class=\"o\">]<\/span> \/\/ tests\/Unit\/BootloadableTest.php:14\narray:2 <span class=\"o\">[<\/span>\n  0 <span class=\"o\">=&gt;<\/span> array:2 <span class=\"o\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Nona Howe MD\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"zulauf.jarred@example.com\"<\/span>\n  <span class=\"o\">]<\/span>\n  1 <span class=\"o\">=&gt;<\/span> array:2 <span class=\"o\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Abbie O'Conner\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"lhowell@example.net\"<\/span>\n  <span class=\"o\">]<\/span>\n<span class=\"o\">]<\/span> \/\/ tests\/Unit\/BootloadableTest.php:19\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0627\u0633\u062a\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 <code>beforeEach<\/code>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0646\u0627\u0645\u0634 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u0642\u0628\u0644 \u0627\u0632 \u0647\u0631 \u062a\u0633\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0686\u0631\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u06cc\u062f <code>beforeAll<\/code> \u0628\u0647 \u062c\u0627\u06cc \u0642\u0644\u0627\u0628\u061f<\/p>\n<p> <\/p>\n<p><code>tests\/Unit\/BootloadableTest.php<\/code>  \u0631\u0648\u06cc \u062e\u0637 <code>6<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"mf\">...<\/span>\n\n<span class=\"nf\">beforeAll<\/span><span class=\"p\">(<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:fresh --seed'<\/span> <span class=\"p\">);<\/span>    \n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"mf\">...<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> vendor\/bin\/pest\n\nFAIL  Tests<span class=\"se\">\\U<\/span>nit<span class=\"se\">\\B<\/span>ootloadableTest\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nFAILED  Tests<span class=\"se\">\\U<\/span>nit<span class=\"se\">\\B<\/span>ootloadableTest <span class=\"o\">&gt;<\/span> \n\nUsing <span class=\"nv\">$this<\/span> when not <span class=\"k\">in <\/span>object context\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0627\u06cc\u0646 <code>$this<\/code> \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a <code>beforeAll<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f\u060c \u0648 \u0646\u0647 \u0646\u0645\u0627\u0647\u0627. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c <code>Artisan::call('migrate:fresh --seed')<\/code> \u062f\u0631 \u0627\u06cc\u0646 \u0632\u0645\u06cc\u0646\u0647 \u0646\u06cc\u0632 \u06a9\u0627\u0631 \u0646\u0645\u06cc \u06a9\u0646\u062f. \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>Bootloadable<\/code> \u0635\u0641\u062a<\/p>\n<p> <\/p>\n<p>\u062e\u0635\u06cc\u0635\u0647 \u063a\u0644\u0628\u0647 \u0645\u06cc \u06a9\u0646\u062f <code>setUp<\/code> \u0648 <code>tearDown<\/code> \u062a\u0648\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062f\u0648 \u0631\u0648\u0634 \u062c\u062f\u06cc\u062f: <code>initialize<\/code> \u0648 <code>finalize<\/code>. \u0627\u06cc\u0646 <code>initialize<\/code> \u0631\u0648\u0634 \u06cc\u06a9 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f\u060c \u0645\u0627\u0646\u0646\u062f <code>beforeAll<\/code>\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 <code>finalize<\/code> \u0631\u0648\u0634 \u0646\u06cc\u0632 \u06cc\u06a9 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f\u060c \u0645\u0627\u0646\u0646\u062f <code>afterAll<\/code>. <\/p>\n<p> <\/p>\n<p><code>tests\\Traits\\Bootloadable.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">Tests\\Traits<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Arr<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Collection<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Str<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Pest\\TestSuite<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">trait<\/span> <span class=\"nc\">Bootloadable<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"nv\">$count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">Collection<\/span> <span class=\"nv\">$tests<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">setUp<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">parent<\/span><span class=\"o\">::<\/span><span class=\"nf\">setUp<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"o\">!<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">init<\/span><span class=\"p\">();<\/span>\n\n            <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nb\">method_exists<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'initialize'<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">initialize<\/span><span class=\"p\">();<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">tearDown<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nb\">count<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$tests<\/span> <span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nb\">method_exists<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'finalize'<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">finalize<\/span><span class=\"p\">();<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">parent<\/span><span class=\"o\">::<\/span><span class=\"nf\">tearDown<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">private<\/span> <span class=\"k\">function<\/span> <span class=\"n\">init<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$repository<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">TestSuite<\/span><span class=\"o\">::<\/span><span class=\"nf\">getInstance<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">tests<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"nv\">$data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n\n        <span class=\"k\">foreach<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$repository<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">getFilenames<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$file<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$factory<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$repository<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$file<\/span> <span class=\"p\">);<\/span>\n\n            <span class=\"nv\">$filename<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Str<\/span><span class=\"o\">::<\/span><span class=\"nf\">of<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$file<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nb\">basename<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nb\">explode<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'.'<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">first<\/span><span class=\"p\">();<\/span>\n\n            <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$factory<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">class<\/span> <span class=\"o\">===<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span> <span class=\"p\">)<\/span> <span class=\"nv\">$data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span> <span class=\"mf\">...<\/span><span class=\"nv\">$data<\/span><span class=\"p\">,<\/span> <span class=\"mf\">...<\/span><span class=\"p\">[<\/span> <span class=\"nv\">$filename<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$factory<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">methods<\/span> <span class=\"p\">]<\/span> <span class=\"p\">];<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"nv\">$cases<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Collection<\/span><span class=\"o\">::<\/span><span class=\"nf\">make<\/span><span class=\"p\">(<\/span> <span class=\"nc\">Arr<\/span><span class=\"o\">::<\/span><span class=\"nf\">dot<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$data<\/span> <span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n        <span class=\"nv\">$only<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$cases<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">filter<\/span><span class=\"p\">(<\/span> <span class=\"k\">fn<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$case<\/span> <span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nc\">Collection<\/span><span class=\"o\">::<\/span><span class=\"nf\">make<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$case<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">groups<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">contains<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'__pest_only'<\/span> <span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n        <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$tests<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span> <span class=\"nv\">$only<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">isEmpty<\/span><span class=\"p\">()<\/span> <span class=\"o\">?<\/span> <span class=\"nv\">$cases<\/span> <span class=\"o\">:<\/span> <span class=\"nv\">$only<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">keys<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">map<\/span><span class=\"p\">(<\/span> <span class=\"k\">fn<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$key<\/span> <span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nc\">Str<\/span><span class=\"o\">::<\/span><span class=\"nf\">of<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$key<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">kebab<\/span> <span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0627\u06cc\u0646 <code>setUp<\/code> \u0648 <code>tearDown<\/code> \u0631\u0648\u0634 \u0647\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u062a\u0645\u0627\u0633 \u0647\u0633\u062a\u0646\u062f <code>initialize<\/code> \u0648 <code>finalize<\/code>. \u0645\u0646\u0637\u0642 \u0627\u0635\u0644\u06cc \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f <code>init<\/code> \u0631\u0648\u0634<\/p>\n<p> <\/p>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634 \u062a\u0639\u062f\u0627\u062f \u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 <code>initialize<\/code> \u0631\u0648\u0634 \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0634\u0645\u0627\u0631\u0634 \u0627\u0648\u0644\u06cc\u0647 0 \u0628\u0627\u0634\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f <code>$count<\/code>. \u0627\u06cc\u0646 <code>finalize<\/code> \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u062a\u0639\u062f\u0627\u062f \u0628\u0647 \u0637\u0648\u0644 \u0639\u062f\u062f \u0628\u0631\u0633\u062f <code>$tests<\/code> \u0622\u0631\u0627\u06cc\u0647\u060c \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 <code>init<\/code> \u062a\u0627\u0628\u0639<\/p>\n<p> <\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>initialize<\/code> \u0631\u0648\u0634\u060c \u0628\u0627\u06cc\u062f \u0635\u0641\u062a \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>TestCase<\/code> \u0648 \u0631\u0648\u0634 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p> <\/p>\n<p><code>tests\/TestCase.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">Tests<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Foundation\\Testing\\TestCase<\/span> <span class=\"k\">as<\/span> <span class=\"nc\">BaseTestCase<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Tests\\Traits\\Bootloadable<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">abstract<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">TestCase<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">BaseTestCase<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kn\">use<\/span> <span class=\"nc\">Bootloadable<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">initialize<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:fresh --seed'<\/span> <span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0627\u06cc\u0646 <code>initialize<\/code> \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u0648\u062f <code>setUp<\/code> \u0631\u0648\u0634 \u062f\u0631 \u0645\u0648\u0631\u062f <code>$this-&gt;withoutVite<\/code>\u060c \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f <code>initialize<\/code>.<\/li>\n<\/ul>\n<p> <\/p>\n<p>\u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0642\u0628\u0644\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f <code>beforeAll()<\/code> \u0627\u0632 <code>BootloadableTest<\/code> \u0641\u0627\u06cc\u0644 \u0633\u067e\u0633\u060c \u062f\u0648\u06cc\u062f\u0646 <code>vendor\/bin\/pest<\/code> \u062f\u0648 \u0628\u0627\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a: \u062f\u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0648 \u062f\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc.<\/p>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"o\">&gt;<\/span> <span class=\"n\">vendor<\/span><span class=\"o\">\/<\/span><span class=\"n\">bin<\/span><span class=\"o\">\/<\/span><span class=\"n\">pest<\/span>\n\n<span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n  <span class=\"mi\">0<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Prof. Moises Skiles IV\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"frederique.nitzsche@example.com\"<\/span>\n  <span class=\"p\">]<\/span>\n  <span class=\"mi\">1<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Prof. Cleve Oberbrunner\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"madelynn.hane@example.net\"<\/span>\n  <span class=\"p\">]<\/span>\n<span class=\"p\">]<\/span> <span class=\"c1\">\/\/ tests\/Unit\/BootloadableTest.php:8<\/span>\n<span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n  <span class=\"mi\">0<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Prof. Moises Skiles IV\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"frederique.nitzsche@example.com\"<\/span>\n  <span class=\"p\">]<\/span>\n  <span class=\"mi\">1<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Prof. Cleve Oberbrunner\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"madelynn.hane@example.net\"<\/span>\n  <span class=\"p\">]<\/span>\n<span class=\"p\">]<\/span> <span class=\"c1\">\/\/ tests\/Unit\/BootloadableTest.php:13<\/span>\n\n<span class=\"o\">&gt;<\/span> <span class=\"n\">vendor<\/span><span class=\"o\">\/<\/span><span class=\"n\">bin<\/span><span class=\"o\">\/<\/span><span class=\"n\">pest<\/span>\n\n<span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n  <span class=\"mi\">0<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Doug Marvin\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"nash.schoen@example.com\"<\/span>\n  <span class=\"p\">]<\/span>\n  <span class=\"mi\">1<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Joaquin Jacobi\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"neoma38@example.net\"<\/span>\n  <span class=\"p\">]<\/span>\n<span class=\"p\">]<\/span> <span class=\"c1\">\/\/ tests\/Unit\/BootloadableTest.php:8<\/span>\n<span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n  <span class=\"mi\">0<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Doug Marvin\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"nash.schoen@example.com\"<\/span>\n  <span class=\"p\">]<\/span>\n  <span class=\"mi\">1<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"o\">:<\/span><span class=\"mi\">2<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s2\">\"name\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Joaquin Jacobi\"<\/span>\n    <span class=\"s2\">\"email\"<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"neoma38@example.net\"<\/span>\n  <span class=\"p\">]<\/span>\n<span class=\"p\">]<\/span> <span class=\"c1\">\/\/ tests\/Unit\/BootloadableTest.php:13<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0622\u0632\u0645\u0648\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a.<\/p>\n<p> <\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062a\u0633\u062a \u0627\u0648\u0644 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0648\u0644 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u062a\u0633\u062a \u062f\u0648\u0645 \u0646\u0627\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0634\u062f\u0647 \u0627\u0632 \u062a\u0633\u062a \u0627\u0648\u0644 \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p> <\/p>\n<p><code>Tests\/Unit\/BootloadableTest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nf\">beforeEach<\/span><span class=\"p\">(<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">first<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Capsules Codes\"<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can modify first user name between two tests\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$name<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">echo<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nf\">expect<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toBe<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$name<\/span> <span class=\"p\">);<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">save<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can verify first user name between two tests\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">echo<\/span> <span class=\"s2\">\" &gt; <\/span><span class=\"si\">{<\/span><span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span><span class=\"si\">}<\/span><span class=\"s2\"> <\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nf\">expect<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toBe<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u067e\u0633 \u0627\u0632 \u062f\u0648 \u0627\u0639\u062f\u0627\u0645 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0632 <code>vendor\/bin\/pest<\/code> \u0641\u0631\u0645\u0627\u0646<\/p>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> vendor\/bin\/pest \n\nEsteban Raynor <span class=\"o\">&gt;<\/span> Capsules Codes\n\nPASS  Tests<span class=\"se\">\\U<\/span>nit<span class=\"se\">\\B<\/span>ootloadableTest\n\u2713 it can modify first user name between two tests\n\u2713 it can verify first user name between two tests\n\nTests:    2 passed <span class=\"o\">(<\/span>2 assertions<span class=\"o\">)<\/span>\nDuration: 0.40s\n\n<span class=\"o\">&gt;<\/span> vendor\/bin\/pest\n\nDemario Corkery <span class=\"o\">&gt;<\/span> Capsules Codes\n\nPASS  Tests<span class=\"se\">\\U<\/span>nit<span class=\"se\">\\B<\/span>ootloadableTest\n\u2713 it can modify first user name between two tests\n\u2713 it can verify first user name between two tests\n\nTests:    2 passed <span class=\"o\">(<\/span>2 assertions<span class=\"o\">)<\/span>\nDuration: 0.39s\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0627\u06af\u0631 \u0647\u0631 \u062a\u0633\u062a \u062f\u0631 \u0641\u0627\u06cc\u0644 \u062e\u0648\u062f\u0634 \u0642\u0631\u0627\u0631 \u06af\u06cc\u0631\u062f \u0686\u0647 \u0627\u062a\u0641\u0627\u0642\u06cc \u0645\u06cc \u0627\u0641\u062a\u062f\u061f<\/p>\n<p> <\/p>\n<p><code>Unit\/FirstTest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nf\">beforeEach<\/span><span class=\"p\">(<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">first<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Capsules Codes\"<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can modify first user name between two tests\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$name<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">echo<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{<\/span><span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span><span class=\"si\">}<\/span><span class=\"s2\"> &gt; <\/span><span class=\"nv\">$this-&gt;new<\/span><span class=\"s2\"> <\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nf\">expect<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toBe<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$name<\/span> <span class=\"p\">);<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">save<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p><code>Unit\/SecondTest.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nf\">beforeEach<\/span><span class=\"p\">(<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">first<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Capsules Codes\"<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can verify first user name between two tests\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nf\">expect<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toBe<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"n\">vendor<\/span><span class=\"o\">\/<\/span><span class=\"n\">bin<\/span><span class=\"o\">\/<\/span><span class=\"n\">pest<\/span>\n\n<span class=\"nc\">Mrs<\/span><span class=\"mf\">.<\/span> <span class=\"nc\">Laurine<\/span> <span class=\"nc\">Ebert<\/span> <span class=\"nc\">V<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nc\">Capsules<\/span> <span class=\"nc\">Codes<\/span>\n\n<span class=\"no\">PASS<\/span>  <span class=\"nc\">Tests\\Unit\\FirstTest<\/span>\n<span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">modify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">test<\/span> <span class=\"n\">files<\/span>                                                                                                                                                                                           <span class=\"mf\">0.08<\/span><span class=\"n\">s<\/span>\n\n<span class=\"no\">PASS<\/span>  <span class=\"nc\">Tests\\Unit\\SecondTest<\/span>\n<span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">verify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">test<\/span> <span class=\"n\">files<\/span>                                                                                                                                                                                      <span class=\"mf\">0.01<\/span><span class=\"n\">s<\/span>\n\n<span class=\"nc\">Tests<\/span><span class=\"o\">:<\/span>    <span class=\"mi\">2<\/span> <span class=\"nf\">passed<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span> <span class=\"n\">assertions<\/span><span class=\"p\">)<\/span>\n<span class=\"nc\">Duration<\/span><span class=\"o\">:<\/span> <span class=\"mf\">0.13<\/span><span class=\"n\">s<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0628\u0631 \u062e\u0644\u0627\u0641 Pest \u06a9\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f <code>beforeAll<\/code> \u0648 <code>afterAll<\/code> \u0631\u0648\u0634\u200c\u0647\u0627\u06cc\u06cc \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u200c\u0647\u0627\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644\u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9<code>TestCase<\/code> \u0627\u0633\u0627\u0633 \u0628\u0647 \u062c\u0627\u06cc \u0641\u0627\u06cc\u0644. \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc <code>initialize<\/code> \u0648 <code>finalize<\/code> \u0631\u0648\u0634\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0622\u0632\u0645\u0648\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647\u060c \u06a9\u0645\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 Trait \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p> <\/p>\n<p><code>tests\/Traits\/Bootloadable.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">Tests\\Traits<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Arr<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Collection<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Str<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Pest\\TestSuite<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">trait<\/span> <span class=\"nc\">Bootloadable<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">int<\/span> <span class=\"nv\">$count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">array<\/span> <span class=\"nv\">$tests<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">private<\/span> <span class=\"k\">static<\/span> <span class=\"kt\">string<\/span> <span class=\"nv\">$current<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">setUp<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">parent<\/span><span class=\"o\">::<\/span><span class=\"nf\">setUp<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$current<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">array_reverse<\/span><span class=\"p\">(<\/span> <span class=\"nb\">explode<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'\\\\'<\/span><span class=\"p\">,<\/span> <span class=\"nb\">debug_backtrace<\/span><span class=\"p\">(<\/span> <span class=\"no\">DEBUG_BACKTRACE_IGNORE_ARGS<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span> <span class=\"p\">)[<\/span> <span class=\"mi\">1<\/span> <span class=\"p\">][<\/span> <span class=\"s1\">'class'<\/span> <span class=\"p\">]<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)[<\/span> <span class=\"mi\">0<\/span> <span class=\"p\">];<\/span>\n\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"o\">!<\/span> <span class=\"k\">isset<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$tests<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">init<\/span><span class=\"p\">();<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"o\">!<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nb\">method_exists<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'initialize'<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">initialize<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$current<\/span> <span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">tearDown<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span>  <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$tests<\/span><span class=\"p\">[<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$current<\/span> <span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nb\">method_exists<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'finalize'<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">finalize<\/span><span class=\"p\">(<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$current<\/span> <span class=\"p\">);<\/span>\n\n            <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">parent<\/span><span class=\"o\">::<\/span><span class=\"nf\">tearDown<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">private<\/span> <span class=\"k\">function<\/span> <span class=\"n\">init<\/span><span class=\"p\">()<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$repository<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">TestSuite<\/span><span class=\"o\">::<\/span><span class=\"nf\">getInstance<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">tests<\/span><span class=\"p\">;<\/span>\n\n        <span class=\"nv\">$data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n\n        <span class=\"k\">foreach<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$repository<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">getFilenames<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$file<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$factory<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$repository<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$file<\/span> <span class=\"p\">);<\/span>\n\n            <span class=\"nv\">$filename<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Str<\/span><span class=\"o\">::<\/span><span class=\"nf\">of<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$file<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nb\">basename<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nb\">explode<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'.'<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">first<\/span><span class=\"p\">();<\/span>\n\n            <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$factory<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">class<\/span> <span class=\"o\">===<\/span> <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span> <span class=\"p\">)<\/span> <span class=\"nv\">$data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span> <span class=\"mf\">...<\/span><span class=\"nv\">$data<\/span><span class=\"p\">,<\/span> <span class=\"mf\">...<\/span><span class=\"p\">[<\/span> <span class=\"nv\">$filename<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nb\">count<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$factory<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">methods<\/span> <span class=\"p\">)<\/span> <span class=\"p\">]<\/span> <span class=\"p\">];<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">self<\/span><span class=\"o\">::<\/span><span class=\"nv\">$tests<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$data<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0646\u0627\u0645 \u0622\u0632\u0645\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u0634\u0648\u062f <code>debug_backtrace<\/code> \u062a\u0627\u0628\u0639<\/li>\n<li>\u0645\u062a\u063a\u06cc\u0631 <code>self::$tests<\/code> \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0627\u0646\u062c\u0645\u0646\u06cc \u0627\u0633\u062a\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0631 \u06a9\u0644\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a\u060c \u0648 \u0647\u0631 \u0645\u0642\u062f\u0627\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062a\u0639\u062f\u0627\u062f \u062a\u0633\u062a \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0622\u0646 \u0627\u0633\u062a.<\/li>\n<li>\u0645\u062a\u063a\u06cc\u0631 <code>self::$count<\/code> \u06cc\u06a9 \u0628\u0627\u0631 \u0628\u0647 \u0635\u0641\u0631 \u0628\u0627\u0632\u0646\u0634\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f <code>finalize<\/code> \u0631\u0648\u0634 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p> <\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 \u0622\u062e\u0631: \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f <code>TestCase<\/code> \u0641\u0627\u06cc\u0644 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0622\u0646 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p> <\/p>\n<p><code>tests\/TestCase.php<\/code><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">Tests<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Foundation\\Testing\\TestCase<\/span> <span class=\"k\">as<\/span> <span class=\"nc\">BaseTestCase<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Tests\\Traits\\Bootloadable<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\App<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\File<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">abstract<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">TestCase<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">BaseTestCase<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kn\">use<\/span> <span class=\"nc\">Bootloadable<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">initialize<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$filename<\/span> <span class=\"p\">)<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$filename<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">\"FirstTest\"<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:fresh --seed'<\/span> <span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$filename<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">\"SecondTest\"<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:fresh --seed'<\/span> <span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">protected<\/span> <span class=\"k\">function<\/span> <span class=\"n\">finalize<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$filename<\/span> <span class=\"p\">)<\/span> <span class=\"p\">:<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$filename<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">\"FirstTest\"<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:reset'<\/span> <span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$filename<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">\"SecondTest\"<\/span> <span class=\"p\">)<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">artisan<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'migrate:reset'<\/span> <span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u062a\u0633\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f.<\/p>\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"o\">&gt;<\/span> <span class=\"n\">vendor<\/span><span class=\"o\">\/<\/span><span class=\"n\">bin<\/span><span class=\"o\">\/<\/span><span class=\"n\">test<\/span>\n\n<span class=\"nc\">Brice<\/span> <span class=\"nc\">Fisher<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nc\">Capsules<\/span> <span class=\"nc\">Codes<\/span>\n\n   <span class=\"no\">PASS<\/span>  <span class=\"nc\">Tests\\Unit\\FirstTest<\/span>\n  <span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">modify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">tests<\/span>                                                                                                                                                                                           <span class=\"mf\">0.36<\/span><span class=\"n\">s<\/span>\n\n   <span class=\"no\">FAIL<\/span>  <span class=\"nc\">Tests\\Unit\\SecondTest<\/span>\n  <span class=\"err\">\u2a2f<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">verify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">tests<\/span>                                                                                                                                                                                           <span class=\"mf\">0.03<\/span><span class=\"n\">s<\/span>\n  <span class=\"err\">\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/span>\n   <span class=\"no\">FAILED<\/span>  <span class=\"nc\">Tests\\Unit\\SecondTest<\/span> <span class=\"o\">&gt;<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">verify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">tests<\/span>\n  <span class=\"nc\">Failed<\/span> <span class=\"n\">asserting<\/span> <span class=\"n\">that<\/span> <span class=\"n\">two<\/span> <span class=\"n\">strings<\/span> <span class=\"n\">are<\/span> <span class=\"n\">identical<\/span><span class=\"mf\">.<\/span>\n  <span class=\"o\">-<\/span><span class=\"s1\">'Capsules Codes'<\/span>\n  <span class=\"o\">+<\/span><span class=\"s1\">'Tremayne Spinka'<\/span>\n\n  <span class=\"n\">at<\/span> <span class=\"n\">tests<\/span><span class=\"o\">\/<\/span><span class=\"nc\">Unit<\/span><span class=\"o\">\/<\/span><span class=\"nc\">SecondTest<\/span><span class=\"mf\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">:<\/span><span class=\"mi\">18<\/span>\n     <span class=\"mi\">14<\/span><span class=\"err\">\u2595<\/span>\n     <span class=\"mi\">15<\/span><span class=\"err\">\u2595<\/span>\n     <span class=\"mi\">16<\/span><span class=\"err\">\u2595<\/span> <span class=\"nf\">it<\/span><span class=\"p\">(<\/span> <span class=\"s2\">\"can verify first user name between two tests\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\n     <span class=\"mi\">17<\/span><span class=\"err\">\u2595<\/span> <span class=\"p\">{<\/span>\n  <span class=\"err\">\u279c<\/span>  <span class=\"mi\">18<\/span><span class=\"err\">\u2595<\/span>     <span class=\"nf\">expect<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">name<\/span> <span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toBe<\/span><span class=\"p\">(<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span> <span class=\"p\">);<\/span>\n     <span class=\"mi\">19<\/span><span class=\"err\">\u2595<\/span> <span class=\"p\">}<\/span> <span class=\"p\">);<\/span>\n     <span class=\"mi\">20<\/span><span class=\"err\">\u2595<\/span>\n\n  <span class=\"mi\">1<\/span>   <span class=\"n\">tests<\/span><span class=\"o\">\/<\/span><span class=\"nc\">Unit<\/span><span class=\"o\">\/<\/span><span class=\"nc\">SecondTest<\/span><span class=\"mf\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">:<\/span><span class=\"mi\">18<\/span>\n\n  <span class=\"nc\">Tests<\/span><span class=\"o\">:<\/span>    <span class=\"mi\">1<\/span> <span class=\"n\">failed<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span> <span class=\"nf\">passed<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span> <span class=\"n\">assertions<\/span><span class=\"p\">)<\/span>\n  <span class=\"nc\">Duration<\/span><span class=\"o\">:<\/span> <span class=\"mf\">0.43<\/span><span class=\"n\">s<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 <code>Brice Fisher<\/code> \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a <code>Tremayne Spinka<\/code>!<\/p>\n<p> <\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0647 \u062f\u0633\u062a \u0622\u0645\u062f\u0647 \u0628\u0627 \u062a\u06a9\u0631\u0627\u0631 \u0627\u0633\u062a <code>BootloadableTest<\/code> \u0631\u0627 \u0628\u0647 \u062f\u0648 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0632\u0627 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f. [ Make sure to replace &#8220;Capsules Codes&#8221; with &#8220;Pest PHP&#8221; in the second file ].<\/p>\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"o\">&gt;<\/span> <span class=\"n\">vendor<\/span><span class=\"o\">\/<\/span><span class=\"n\">bin<\/span><span class=\"o\">\/<\/span><span class=\"n\">pest<\/span>\n\n<span class=\"nc\">Ernestine<\/span> <span class=\"nc\">Dietrich<\/span> <span class=\"no\">III<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nc\">Capsules<\/span> <span class=\"nc\">Codes<\/span>\n\n<span class=\"no\">PASS<\/span>  <span class=\"nc\">Tests\\Unit\\FirstTest<\/span>\n<span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">modify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">test<\/span> <span class=\"n\">files<\/span>\n<span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">verify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">test<\/span> <span class=\"n\">files<\/span>\n\n<span class=\"nc\">Dr<\/span><span class=\"mf\">.<\/span> <span class=\"nc\">Nya<\/span> <span class=\"nc\">Gusikowski<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nc\">Pest<\/span> <span class=\"no\">PHP<\/span>\n\n<span class=\"no\">PASS<\/span>  <span class=\"nc\">Tests\\Unit\\SecondTest<\/span>\n<span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">modify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">test<\/span> <span class=\"n\">files<\/span>\n<span class=\"err\">\u2713<\/span> <span class=\"n\">it<\/span> <span class=\"n\">can<\/span> <span class=\"n\">verify<\/span> <span class=\"n\">first<\/span> <span class=\"n\">user<\/span> <span class=\"n\">name<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">test<\/span> <span class=\"n\">files<\/span>\n\n<span class=\"nc\">Tests<\/span><span class=\"o\">:<\/span>    <span class=\"mi\">4<\/span> <span class=\"nf\">passed<\/span> <span class=\"p\">(<\/span><span class=\"mi\">4<\/span> <span class=\"n\">assertions<\/span><span class=\"p\">)<\/span>\n<span class=\"nc\">Duration<\/span><span class=\"o\">:<\/span> <span class=\"mf\">0.42<\/span><span class=\"n\">s<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <\/p>\n<p>\u062e\u0648\u0634\u062d\u0627\u0644\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0645\u06a9 \u06a9\u0631\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang TL;DR: \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0628\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645 beforeAll \u0648 afterAll \u0631\u0648\u0634 \u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0622\u0641\u062a \u0646\u0645\u0648\u0646\u0647 \u067e\u0631\u0648\u0698\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u06cc\u0627\u0641\u062a \u0645\u062e\u0632\u0646 Github. \u0628\u06cc\u0634\u062a\u0631 \u0628\u062f\u0627\u0646\u06cc\u062f \u06a9\u067e\u0633\u0648\u0644\u060c X \u06cc\u0627 \u0628\u0644\u0648\u0627\u0633\u06a9\u06cc. \u0645\u0646 \u0628\u0647 \u0627\u0633\u062a\u0639\u0627\u0631\u0647 \u0627\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645 \u062a\u0627 \u0645\u0642\u0627\u0644\u0647 \u062e\u0648\u062f \u0631\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":84490,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-84489","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/84489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=84489"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/84489\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/84490"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=84489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=84489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=84489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}