-
PIERRON Laurent authoredPIERRON Laurent authored
marp: true
style: |
.columns {
display: grid;
grid-template:
"a b b";
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}
.columns-left {
background: green;
}
.columns-right {
background: beige;
}
TP CodeCeption
Source : https://codeception.com/docs/GettingStarted
(Codeception](https://codeception.com) est un framework de tests pour envirnonnements de dévloppements PHP : Symfony, Laravel, etc.
Il fournit les outils pour développer des tests : unitaires, fonctionnels, d'intégration et d'acceptation (définis par le client dans le cahier des charges).
Trois types de tests
- Unit : teste une classe PHP
- Functional : teste un ensemble de classes PHP
- Acceptance : teste l'application Web finale comme un utilisateur
PasteBin
Prérequis projet - Installer le logiciel PrivateBin with
git clone git clone https://github.com/PrivateBin/PrivateBin
- Installation des dépendances :
composer update
- Démarrer le serveur :
php -S localhost:8000
- Tester en ouvrant la page : http://localhost:80001.
- Retirer
phpunit
à cause d'un conflit :composer remove 'phpunit/phpunit'
Installation de codeception
Source : https://codeception.com/quickstart
composer require "codeception/codeception" --dev
php vendor/bin/codecept bootstrap
Vous pouvez également installer l'extension Codeception
pour votre IDE si elle existe.
Création du premier test
Un premier test d'acceptation, créé automatqiuement dans tests/Acceptance/SigninCest.php
php vendor/bin/codecept generate:cest Acceptance Signin
Modification du premier test
Test en Langage Laturel
I amOnPage '/login'
I fillField 'email','john_doe@gmail.com''
I fillField 'password','123456'
I click 'Login'
Test en Codeception PHP
namespace Tests\Acceptance;
use \Tests\Support\AcceptanceTester;
class SigninCest
{
public function signInSuccessfully(AcceptanceTester $I)
{
$I->amOnPage('/login');
$I->fillField('email', 'john_doe@gmail.com');
$I->fillField('password', '123456');
$I->click('Login');
}
}
Lancement du test
Configurer le lancement des tests d'acceptation, en indiquant l'URL de votre application : tests/Acceptance.suite.yml
actor: AcceptanceTester
modules:
enabled:
- PhpBrowser:
url: http://localhost:8000/
Lancer le test avec la commande run
: php vendor/bin/codecept run --steps
Modifier le test pour valider le lancement de PasteBin
.
Suite sur Codeception :
- Développemnt guidé par le comportement : https://codeception.com/docs/BDD
- Tests avec des objets bidons : https://codeception.com/docs/UnitTests#Mocks
- Tests d'intégration : https://codeception.com/docs/UnitTests#Integration-Tests
- Tests de base de données : https://codeception.com/docs/UnitTests#Testing-Database
Mise en oeuvre sur un autre exemple
Source : https://github.com/Codeception/laravel-module-tests
git clone https://github.com/Codeception/laravel-module-tests.git goodcode
cd goodcode
composer update
cp .env.testing .env
touch database/database.sqlite
php artisan migrate --seed
vendor/bin/codecept run Functional
php artisan serve