Hello Magento Folks,
In this article, I will illustrate How To Create A Unit Test File In Magento 2 and How to Run Unit Test in Magento 2. I am writing this for all the beginners who just started with Magento and need to learn about the unit tests. Also, check out our previously placed blog where I have explained How to Use Local & Cookie Storage using JavaScript modules in Magento 2. We will also go through the Command Line Interface (CLI) and PHPStorm IDE in this article.
Contents
Basically, unit testing is known as a part of software testing where each and every small unit of the software is tested. The main cause of this is for the validation of the software code which works as expected. Unit testing is conducted when the development process of the application.
Mainly unit testing is performed to diminish the number of bugs/errors occurred during production. The precise unit testing is carried out from the closest developer to the project and with the help of these unit tests, all other developers will get an opportunity to understand and learn the code more precisely.
Detect Problems Early – With unit testing, you can find common errors and corrections at the time of development itself.
Help in Changes – Upgrading the libraries and refactoring code will be easy in the future with the help of unit testing.
Design – Testing code beforehand will help you create better designs.
Save Time – Unit testing at regular intervals will reduce errors and this will reduce the time of testing.
In Magento 2, unit testing means validating pieces of code. Unit testing will help to make sure that the code matches the Magento standards.
Step 1: Create the Unittest.php file at the given below path and add code.
app\code\Vendor\Extension\Model\
<?php namespace Vendor\Extension\Model; class Unittest { /** * this function will perform the addition of two numbers * * @param int $no1 * @param int $no2 * @return int */ Public function additiondata($no1 ,$no2) { return $no1 + $no2; } }
Step 2: Create the Unittest.php file at the given below path and add code.
app\code\Vendor\Extension\Test\Unit\Model\
<?php namespace Vendor\Extension\Test\Unit\Model; class Unittest extends \PHPUnit\Framework\TestCase { public function setUp() : void { $this->_objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->_calculator = $this->_objectManager->getObject("Vendor\Extension\Model\Unittest"); } /** * this function will perform the addition of two numbers * * @param int $no1 * @param int $no2 * @return int */ public function testcaseAddition(): void { $this->_actulResult = $this->_calculator->additiondata(7,7); // call additiondata method from model file $this->_desiredResult = 14; // actual result compare set $this->assertEquals($this->_desiredResult, $this->_actulResult); /* check test case match or not if true the give ok message otherwise give error */ } }
Test all the Unit test in Magento Core modules
php bin/magento dev:tests:run unit
Unit test for a specific module
php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Vendor/Extension
Unit Test for a specific file
php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Vendor/Extension/Test/Unit/Model/Unittest.php
Hopefully, all are able to Create A Unit Test File and Run Unit Test In Magento 2 using the above-given illustration. In case of any errors, you face during the unit file creation you can ask me in the comment section below. Don’t forget to hit the 5 stars
Share the article with your new developer friends
Happy Reading
E-commerce has transformed the way consumers shop for products and services and interact with businesses.…
The e-commerce world is constantly in flux. New tech and strategies emerge daily to help…
Hello Magento Friends, In today’s blog, we will discuss adding a header and footer to…
Hello React Native Friends, Building a visually appealing and responsive mobile app is crucial in…
We're thrilled to announce the release of Hyvä Themes 1.3.6 and 1.3.7! These latest updates…
Your e-commerce platform is surging - orders are rolling in, traffic spikes are becoming the…
View Comments
Please replace file name Unittest.php -> UnitTest.php after changing the file above example works fine. also, change the CLI command.
php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Vendor/Extension/Test/Unit/Model/UnitTest.php
Thank you for the suggestion, we will do the needful.