- PHP
- Composer
composer require phpunit/phpunit --dev
composer require symfony/var-dumper --dev
composer require illuminate/collection
composer require moneyphp/money
mfilipoff/test-workshop
│ composer.json
│ phpunit.xml
│ ...
│
└───src
| │ ...
│
└───tests
│ factories.php
│
└───Feature
│ │ XTest.php
│
└───Unit
│ XTest.php
Contamos con dos suites configuradas en el archivo phpunit.xml: Feature y Unit.
- Independientes entre sí
- Rápidos
- De caja negra
Utilizando TDD (Test Driven Development) es una práctica no nombrar significativamente los tests de entrada, ya que posiblemente no tengamos conocimiento suficiente del dominio como para definirlos claramente, por eso mismo a los TestCase los voy a nombrar XTest, mientras que a cada test lo voy a enumerar, empezando por test_001.
Recordemos que PHPUnit necesita que el test cominece con test_ o en su defecto decorarlo con @Test.
Desarrollaremos un carrito de compra y simularemos el flujo desde que tomo el carrito de compras hasta que paso por caja y obtengo el total a pagar.
Con que clases vamos a trabajar?
- Cart
- Catalog
- Checkout
./vendor/bin/phpunit tests/Unit --random-order