Memberikan sifat pembantu untuk PHPUnit.
dd()
dan d()
TestDouble
$this->getDouble()
$this->verifyInvoked()
$this->verifyInvokedOnce()
$this->verifyInvokedMultipleTimes()
$this->verifyNeverInvoked()
ReflectionHelper
$this->getPrivateProperty()
$this->setPrivateProperty()
$this->getPrivateMethodInvoker()
DebugHelper
Berlari:
$ composer require --dev kenjis/phpunit-helper
TestDouble
Sifat ini menyediakan metode pembantu untuk membuat objek tiruan dan memverifikasi pemanggilan.
Impor sifat KenjisPhpUnitHelperTestDouble
ke kelas pengujian Anda:
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper TestDouble ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use TestDouble;
}
$this->getDouble()
param | jenis | keterangan |
---|---|---|
$classname | rangkaian | nama kelas |
$params | susunan | [nama_metode => nilai_pengembalian] |
[[nama_metode => [nilai_pengembalian1, nilai_pengembalian2 [, ...]]] | ||
$constructor_params | salah/susunan | false: nonaktifkan konstruktor/array: parameter konstruktor |
returns
(objek) objek tiruan PHPUnit.
Mendapatkan objek tiruan PHPUnit.
$ email = $ this -> getMockBuilder (CI_Email::class)
-> disableOriginalConstructor ()
-> onlyMethods ([ ' send ' ])
-> getMock ();
$ email -> method ( ' send ' )
-> willReturn ( true );
Anda bisa menulis kode di atas seperti di bawah ini:
$ email = $ this -> getDouble (CI_Email::class, [ ' send ' => true ]);
Anda dapat mengatur Penutupan sebagai nilai kembalian dari metode tiruan.
$ ret = function () {
throw new RuntimeException ( ' Cannot send email! ' );
};
$ mock = $ this -> getDouble (CI_Email::class, [ ' send ' => $ ret ]);
Anda juga dapat mengatur tiruan itu sendiri sebagai nilai kembalian dari metode tiruan dengan menggunakan $this->returnSelf()
.
$ mock = $ this -> getDouble (CI_Email::class, [
' to ' => $ this -> returnSelf (),
' subject ' => $ this -> returnSelf (),
' send ' => true ,
]);
Anda dapat membuat tiruan dengan panggilan berturut-turut.
$ mock = $ this -> getMockBuilder (CI_Email::class)
-> disableOriginalConstructor ()
-> onlyMethods ([ ' method ' ])
-> getMock ();
$ mock -> expects ( $ this -> any ())-> method ( ' method ' )
-> will ( $ this -> onConsecutiveCalls ( ' GET ' , ' POST ' , ' DELETE ' ));
Anda bisa menulis kode di atas seperti di bawah ini:
$ mock = $ this -> getDouble (
CI_Input::class,
[
[ ' method ' => [ ' GET ' , ' POST ' , ' DELETE ' ]],
]
);
$this->verifyInvoked()
param | jenis | keterangan |
---|---|---|
$mock | obyek | Objek tiruan PHPUnit |
$method | rangkaian | nama metode |
$params | susunan | argumen |
Memverifikasi suatu metode dipanggil setidaknya sekali.
$ loader -> expects ( $ this -> atLeastOnce ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
Anda bisa menulis kode di atas seperti di bawah ini:
$ this -> verifyInvoked (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
$this->verifyInvokedOnce()
param | jenis | keterangan |
---|---|---|
$mock | obyek | Objek tiruan PHPUnit |
$method | rangkaian | nama metode |
$params | susunan | argumen |
Memverifikasi bahwa metode hanya dipanggil sekali.
$ loader -> expects ( $ this -> once ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
Anda bisa menulis kode di atas seperti di bawah ini:
$ this -> verifyInvokedOnce (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
$this->verifyInvokedMultipleTimes()
param | jenis | keterangan |
---|---|---|
$mock | obyek | Objek tiruan PHPUnit |
$method | rangkaian | nama metode |
$times | ke dalam | kali |
$params | susunan | argumen |
Memverifikasi bahwa metode dipanggil tepat $times kali.
$ loader -> expects ( $ this -> exactly ( 2 ))
-> method ( ' view ' )
-> withConsecutive (
[ ' shopConfirm ' , $ this -> anything (), true ],
[ ' shopTmplCheckout ' , $ this -> anything ()]
);
Anda bisa menulis kode di atas seperti di bawah ini:
$ this -> verifyInvokedMultipleTimes (
$ loader ,
' view ' ,
2 ,
[
[ ' shopConfirm ' , $ this -> anything (), true ],
[ ' shopTmplCheckout ' , $ this -> anything ()]
]
);
$this->verifyNeverInvoked()
param | jenis | keterangan |
---|---|---|
$mock | obyek | Objek tiruan PHPUnit |
$method | rangkaian | nama metode |
$params | susunan | argumen |
Memverifikasi bahwa metode tidak dipanggil.
$ loader -> expects ( $ this -> never ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
Anda bisa menulis kode di atas seperti di bawah ini:
$ this -> verifyNeverInvoked (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
ReflectionHelper
Sifat ini menyediakan metode pembantu untuk mengakses properti dan metode pribadi atau dilindungi.
Namun secara umum tidak disarankan untuk menguji properti atau metode non-publik, jadi pikirkan dua kali sebelum Anda menggunakan metode dalam sifat ini.
Impor sifat KenjisPhpUnitHelperReflectionHelper
ke kelas pengujian Anda:
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper ReflectionHelper ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use ReflectionHelper;
}
$this->getPrivateProperty()
param | jenis | keterangan |
---|---|---|
$obj | objek/string | nama objek/kelas |
$property | rangkaian | nama properti |
returns
nilai properti (campuran).
Mendapat nilai properti pribadi atau dilindungi.
$ obj = new SomeClass ();
$ private_propery = $ this -> getPrivateProperty (
$ obj ,
' privatePropery '
);
$this->setPrivateProperty()
param | jenis | keterangan |
---|---|---|
$obj | objek/string | nama objek/kelas |
$property | rangkaian | nama properti |
$value | campur aduk | nilai |
Menetapkan nilai properti pribadi atau dilindungi.
$ obj = new SomeClass ();
$ this -> setPrivateProperty (
$ obj ,
' privatePropery ' ,
' new value '
);
$this->getPrivateMethodInvoker()
param | jenis | keterangan |
---|---|---|
$obj | objek/string | nama objek/kelas |
$method | rangkaian | nama metode |
pemanggil metode returns
(penutupan).
Mendapatkan pemanggil metode pribadi atau terlindungi.
$ obj = new SomeClass ();
$ method = $ this -> getPrivateMethodInvoker (
$ obj , ' privateMethod '
);
$ this -> assertEquals (
' return value of the privateMethod() method ' , $ method ()
);
DebugHelper
Sifat ini menyediakan fungsi pembantu, dd()
dan d()
untuk membuang variabel.
Impor sifat KenjisPhpUnitHelperDebugHelper
ke kelas pengujian Anda:
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper DebugHelper ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use DebugHelper;
}
Paket ini dilisensikan menggunakan Lisensi MIT.
Silakan lihat LICENSE
.