Magento Tutorials

How To Create A Unit Test File In Magento 2

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. 

What is Unit Testing?

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.

Why do you need Unit Testing?

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.

Benefits of Unit Testing:

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.

Steps to Create A Unit Test File In Magento 2:

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 */    }
}

How to Run Unit Test in Magento 2?

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

Wrap Up:

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

Click to rate this post!
[Total: 13 Average: 4.7]
Dhiren Vasoya

Dhiren Vasoya is a Director and Co-founder at MageComp, Passionate 🎖️ Certified Magento Developer👨‍💻. He has more than 9 years of experience in Magento Development and completed 850+ projects to solve the most important E-commerce challenges. He is fond❤️ of coding and if he is not busy developing then you can find him at the cricket ground, hitting boundaries.🏏

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

Recent Posts

6 Innovative Tools Revolutionizing E-Commerce Operations

E-commerce has transformed the way consumers shop for products and services and interact with businesses.…

1 day ago

How Upcoming Cookie Changes Will Affect Your E-commerce Website?

The e-commerce world is constantly in flux. New tech and strategies emerge daily to help…

2 days ago

Magento 2: How to Add Header and Footer in Checkout

Hello Magento Friends, In today’s blog, we will discuss adding a header and footer to…

2 days ago

Understanding Flexbox Layout in React Native

Hello React Native Friends, Building a visually appealing and responsive mobile app is crucial in…

4 days ago

HYVÄ Themes Releases: 1.3.6 & 1.3.7 – What’s New

We're thrilled to announce the release of Hyvä Themes 1.3.6 and 1.3.7! These latest updates…

4 days ago

How Modern E-Commerce Platforms Leverage Docker & Kubernetes for Scalability

Your e-commerce platform is surging - orders are rolling in, traffic spikes are becoming the…

5 days ago