
I have written this blog post to help those who are new at writing unit tests and how to write basic unit tests for your Magento 2 custom modules. Magento 2 comes with a great set of unit tests out-of-the-box. Magento 2 comes pre-installed with PHPUnit, an automated testing framework for PHP that has been included as a dependancy in Magento 2’s composer.json.
Today I'm going to create a small custom module in magento 2 and will write test cases for it. Let’s start, now I am assuming that you are aware with the Magento Directory structure and know how to create custom module. Let me brief I am going to create a model for calculator where we can perform basic operations like addition, substraction etc.
Step 1: First create your custom module and register it, here I am creating a module named "Prashant_HelloUnitTest".
Step 2: Create model calculator here :
app/code/Prashant/HelloUnitTest/Model/Calculator.php
<?php
namespace Prashant\HelloUnitTest\Model;
class Calculator {
/**
* this function will perform the addition of two numbers
*
* @param float $a
* @param float $b
* @return float
*/
Public function addition($a ,$b) {
return $a + $b;
}
}
Now lets create unit test model for the above.
Step 3: Create test model here :
app/code/Prashant/HelloUnitTest/Test/Unit/Model/Calculator.php
<?php
namespace Prashant\HelloUnitTest\Test\Unit\Model;
class Calculator extends \PHPUnit\Framework\TestCase {
protected $_objectManager;
protected $_desiredResult;
protected $_actulResult;
protected $_calculator;
/**
* unset the variables and objects after use
*
* @return void
*/
public function tearDown() {
}
/**
* used to set the values to variables or objects.
*
* @return void
*/
public function setUp() {
$this->_objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->_calculator = $this->_objectManager->getObject("Prashant\HelloUnitTest\Model\Calculator");
//can do stuff
}
/**
* this function will perform the addition of two numbers
*
* @param float $a
* @param float $b
* @return float
*/
public function testAddition() {
$this->_actulResult = $this->_calculator->addition(7.0,3.0);
$this->_desiredResult = 10.0;
$this->assertEquals($this->_desiredResult, $this->_actulResult);
}
}
Step 4: Run below command and check output.
php vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Prashant/HelloUnitTest/Test/Unit/Model/Calculator.php




