Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan JUnit dan Mockito untuk pembangunan dipacu ujian dalam PHP

Cara menggunakan JUnit dan Mockito untuk pembangunan dipacu ujian dalam PHP

王林
王林asal
2023-06-25 14:25:29839semak imbas

Dengan kemajuan berterusan pembangunan perisian, pembangunan dipacu ujian (TDD) telah menjadi model pembangunan yang semakin popular. Dalam proses TDD, ujian menjadi teras kepada proses pembangunan, dan JUnit dan Mockito ialah dua rangka kerja ujian yang biasa digunakan. Dalam pembangunan PHP, bagaimana untuk menggunakan JUnit dan Mockito untuk TDD? Pengenalan terperinci akan diberikan di bawah.

1. Pengenalan kepada JUnit dan Mockito

JUnit ialah rangka kerja ujian bahasa Java. Ia membantu pembangun Java menulis dan menjalankan ujian berulang, dan menyediakan penegasan yang mudah untuk pengesahan keputusan ujian. Selepas itu, JUnit berkembang menjadi rangka kerja ujian yang digunakan secara meluas yang kini menyokong berbilang bahasa pengaturcaraan.

Mockito ialah rangka kerja Mock yang ditulis untuk Java yang membantu pembangun mencipta objek Mock dan menentukan tingkah laku mereka. Objek olok-olok mempunyai antara muka yang sama seperti objek sebenar, tetapi pelaksanaannya adalah palsu. Pelaksanaan palsu ini boleh digunakan dalam konteks ujian untuk mensimulasikan gelagat objek sebenar, membolehkan kawalan terperinci ujian unit.

2. Pasang dan konfigurasikan JUnit dan Mockito

Menggunakan JUnit dan Mockito dalam PHP memerlukan pemasangan sambungan PHPUnit dan PHPUnit_MockObject. Mereka boleh dipasang menggunakan arahan berikut:

composer require --dev phpunit/phpunit
composer require --dev phpunit/phpunit-mock-objects

Selepas melengkapkan pemasangan, anda boleh menggunakan Mockito dalam ujian PHPUnit.

3. Gunakan JUnit untuk pembangunan dipacu ujian

Dalam proses menggunakan JUnit untuk TDD, setiap kitaran pembangunan terdiri daripada dua langkah: ujian dan pembangunan. Dalam langkah pertama TDD, anda perlu menulis kod kes ujian terlebih dahulu. Dalam PHP, anda boleh menggunakan PHPUnit untuk menulis kod kes ujian.

Berikut ialah contoh kod kes ujian yang ditulis menggunakan JUnit:

<?php
//引入PHPUnit和要测试的类
use PHPUnitFrameworkTestCase;
use AppCalculator;

class CalculatorTest extends TestCase {
    //测试方法
    public function testAdd() {
        //实例化被测类
        $calculator = new Calculator();
        //测试断言
        $this->assertEquals(8, $calculator->add(3, 5));
    }
}
?>

Dalam kod contoh, kaedah assertEquals yang disediakan oleh PHPUnit digunakan untuk membandingkan sama ada hasil yang dijangkakan konsisten dengan hasil operasi. Jika keputusan ujian tidak konsisten, ujian gagal. assertEquals方法来比较预期的结果与运算结果是否一致。如果测试结果不一致,则测试失败。

在进行TDD的下一个步骤时,需要编写被测代码。在PHP中,可以将被测代码单独封装为一个类或者函数。

下面是一个使用PHP编写的计算器代码:

<?php
namespace App;

class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }
}
?>

在编写完被测代码后,再运行PHPUnit测试,进行测试结果的验证。如果测试成功,则进行下一个开发周期。

四、使用Mockito进行测试驱动开发

在使用Mockito进行TDD过程中,需要先确定被测对象所依赖的其他对象,并使用Mockito框架来创建虚拟对象。

下面是一个使用Mockito创建虚拟对象的示例:

<?php
//引入Mockito
use PHPUnitFrameworkTestCase;
use PHPUnitFrameworkMockObjectMockObject;

class CalculatorTest extends TestCase {
    public function testAdd() {
        //创建被测对象的Mock对象
        $mockedDependency = $this->getMockBuilder(Dependency::class)
            ->getMock();
        
        //实例化要测试的类,并将Mock对象注入依赖
        $calculator = new Calculator($mockedDependency);
        
        //测试断言
        $this->assertEquals(8, $calculator->add(3, 5));
    }
}
?>

在示例代码中,使用了Mockito提供的getMockBuilder

Apabila mengambil langkah seterusnya TDD, anda perlu menulis kod di bawah ujian. Dalam PHP, kod yang sedang diuji boleh dibungkus secara individu sebagai kelas atau fungsi.

Berikut ialah kod kalkulator yang ditulis dalam PHP:

rrreee

Selepas menulis kod yang sedang diuji, jalankan ujian PHPUnit untuk mengesahkan keputusan ujian. Jika ujian berjaya, teruskan ke kitaran pembangunan seterusnya.

4. Gunakan Mockito untuk pembangunan dipacu ujian🎜🎜Dalam proses menggunakan Mockito untuk TDD, anda perlu terlebih dahulu menentukan objek lain yang bergantung kepada objek yang sedang diuji, dan menggunakan rangka kerja Mockito untuk mencipta objek maya. 🎜🎜Berikut ialah contoh menggunakan Mockito untuk mencipta objek maya: 🎜rrreee🎜Dalam kod contoh, kaedah getMockBuilder yang disediakan oleh Mockito digunakan untuk mencipta objek maya. Kemudian nyatakan objek yang sedang diuji, suntikan objek tiruan, dan jalankan ujian. 🎜🎜Perlu diingatkan bahawa Mockito hanya digunakan untuk mencipta objek maya dan tidak menyediakan kaedah ujian. Kaedah ujian menggunakan Mockito adalah sama seperti kaedah ujian PHPUnit biasa. 🎜🎜5 Ringkasan🎜🎜Dalam pembangunan PHP, menggunakan JUnit dan Mockito untuk TDD boleh meningkatkan kualiti kod dan kecekapan pembangunan. Dengan menulis kes ujian, pembangun boleh membantu menentukan keperluan dan hasil yang dijangkakan. Menggunakan Mockito boleh membantu pembangun mengawal tingkah laku objek dengan lebih baik semasa ujian. Apabila kes ujian lulus, pembangun boleh menghantar kod ke persekitaran sebenar dengan lebih yakin. 🎜

Atas ialah kandungan terperinci Cara menggunakan JUnit dan Mockito untuk pembangunan dipacu ujian dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn