Maison >développement back-end >tutoriel php >Tests unitaires de code PHP et tests d'intégration
Guide des tests unitaires et d'intégration PHP Tests unitaires : concentrez-vous sur une seule unité de code ou de fonction et utilisez PHPUnit pour créer des classes de cas de test à des fins de vérification. Tests d'intégration : concentrez-vous sur la façon dont plusieurs unités de code fonctionnent ensemble et utilisez les méthodes setUp() et TearDown() de PHPUnit pour configurer et nettoyer l'environnement de test. Cas pratique : utilisez PHPUnit pour effectuer des tests unitaires et d'intégration dans les applications Laravel, notamment la création de bases de données, le démarrage de serveurs et l'écriture de code de test.
Tests unitaires et tests d'intégration de code PHP
Introduction
Les tests unitaires et les tests d'intégration sont des types de tests cruciaux dans le développement de logiciels, qui peuvent garantir l'exactitude et la fiabilité du code à différents niveaux sexuels. Cet article vous guidera dans l'utilisation de PHPUnit pour les tests unitaires et les tests d'intégration du code PHP.
Tests unitaires
Les tests unitaires se concentrent sur une seule unité ou fonction du code. Afin de créer des tests unitaires, vous devez créer des classes de cas de test à l'aide de PHPUnit. Utilisons un exemple simple :
<?php class SumTest extends PHPUnit_Framework_TestCase { public function testSum() { $a = 2; $b = 3; $result = $a + $b; $this->assertEquals($result, 5); } }
Dans ce test, la méthode testSum()
vérifie que $a + $b
est égal à 5. testSum()
方法验证了 $a + $b
是否等于 5。
集成测试
集成测试关注代码的多个单元共同工作的正确性。对于集成测试,您需要使用 PHPUnit 的 setUp()
和 tearDown()
方法来设置和清除测试环境。让我们举一个简单的示例:
<?php class UserServiceTest extends PHPUnit_Framework_TestCase { protected $userService; public function setUp() { $this->userService = new UserService(); } public function testGetUser() { $user = $this->userService->getUser(1); $this->assertEquals($user->getName(), 'John Doe'); } public function tearDown() { unset($this->userService); } }
在这个测试中,我们首先在 setUp()
方法中设置用户服务。然后,我们调用 getUser()
方法,并验证返回的用户名称是否正确。最后,我们在 tearDown()
Tests d'intégration
Les tests d'intégration se concentrent sur l'exactitude de plusieurs unités de code travaillant ensemble. Pour les tests d'intégration, vous devez utiliser les méthodessetUp()
et tearDown()
de PHPUnit pour configurer et effacer l'environnement de test. Prenons un exemple simple : # 创建一个名为 "testing" 的数据库 php artisan migrate --database=testing # 启动 PHP 内置服务器 php artisan serveDans ce test, nous avons d'abord configuré le service utilisateur dans la méthode
setUp()
. Nous appelons ensuite la méthode getUser()
et vérifions que le nom d'utilisateur renvoyé est correct. Enfin, nous nettoyons l'environnement dans la méthode tearDown()
. Cas pratique
Ce qui suit est un cas pratique utilisant PHPUnit pour effectuer des tests unitaires et d'intégration dans des applications Laravel.
Créer un environnement de test
# tests/Feature/UserTest.php namespace Tests\Feature; use Tests\TestCase; class UserTest extends TestCase { public function testCreateUser() { $response = $this->post('/user', [ 'name' => 'John Doe', 'email' => 'john@example.com', 'password' => 'password', ]); $response->assertStatus(201); } }
Écrire des tests unitaires
# tests/Feature/UserServiceTest.php namespace Tests\Feature; use Tests\TestCase; class UserServiceTest extends TestCase { public function testGetUser() { $user = \App\Models\User::factory()->create(); $response = $this->get('/user/' . $user->id); $response->assertStatus(200); $response->assertJson(['name' => $user->name]); } }🎜Écrire des tests d'intégration🎜🎜
# 运行单元测试 phpunit tests/Unit # 运行集成测试 phpunit tests/Feature🎜🎜Exécuter des tests🎜🎜rrreee
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!