TESTING
TESTING FUNGSI V
FUNGSI VA
ALIDASI
LIDASI INPUTAN
INPUTAN STOK BARANG DAN
STOK BARANG DAN
PENJUALAN
PENJUALAN
((
WHITE BOX WHITE BOXTESTING MENGGUNAKAN PHPUNIT)
TESTING MENGGUNAKAN PHPUNIT)
TUGAS TESTING DAN IMPLEMENTASI SISTEM
TUGAS TESTING DAN IMPLEMENTASI SISTEM
Oleh: Oleh:
HIZKIA YESARELA SAHADUTA
HIZKIA YESARELA SAHADUTA
NIM 12!1""1#
NIM 12!1""1#
PROGRAM STUDI S1$
PROGRAM STUDI S1$ TEKNIK INFORMATTEKNIK INFORMATIKAIKA
KEMENTERIAN RISTEK DAN PENDIDIKAN TINGGI KEMENTERIAN RISTEK DAN PENDIDIKAN TINGGI SEKOLAH TINGGI MANAJEMEN
SEKOLAH TINGGI MANAJEMEN INFORMATINFORMATIKA DAN KOMPUTER IKA DAN KOMPUTER PPKIA P
PPKIA PRADNYA PRADNYA PARAMITAARAMITA MALANG
MALANG 2"1# 2"1#
TESTING
TESTING FUNGSI VFUNGSI VALIDASI ALIDASI INPUTAN INPUTAN STOK BARANG DANSTOK BARANG DAN PENJUALAN
PENJUALAN
((WHITE BOX WHITE BOX TESTING MENGGUNAKAN PHPUNIT) TESTING MENGGUNAKAN PHPUNIT)
1
1 PPHHPPUU%%&&''
PHPUnit adalah sebuah programmer-oriented testing framework untuk bahasa PHPUnit adalah sebuah programmer-oriented testing framework untuk bahasa pemrograman php, merupakan bagian dari xUnit untuk unit testing framework
pemrograman php, merupakan bagian dari xUnit untuk unit testing framework didi buat oleh Sebastian Bergmann5 , official web untuk PHPUnit adalah
buat oleh Sebastian Bergmann5 , official web untuk PHPUnit adalah http:phpunit!de, "ersi terbaru adalah phpunit 5!#!$ untuk
http:phpunit!de, "ersi terbaru adalah phpunit 5!#!$ untuk "ersi stable dan phpunit"ersi stable dan phpunit 5!% untuk "ersi beta
5!% untuk "ersi beta
Untuk installasi PHPUnit cukup mudah, ada ban&ak cara &ang bisa dilakukan, Untuk installasi PHPUnit cukup mudah, ada ban&ak cara &ang bisa dilakukan, bisa melalui phar, pear atau composer
bisa melalui phar, pear atau composer! 'isini han&a akan di (elaskan bagaimana! 'isini han&a akan di (elaskan bagaimana instalasi PHPunit di lwindows menggunakan composer
instalasi PHPunit di lwindows menggunakan composer
1
111 II%%''llll& & PPHHPPUU%%&&''
'ownload dan
'ownload dan install composer di install composer di https:getcomposerhttps:getcomposer!org)!org)omposer- omposer-Setup!exe , lalu (alankan! *nstaller ototmasi merupakan "ersi composer &ang paling Setup!exe , lalu (alankan! *nstaller ototmasi merupakan "ersi composer &ang paling terbaru dan
terbaru dan setelah kita selesei setelah kita selesei install secara otomastis pula install secara otomastis pula sudah men-set P+sudah men-set P+H ,H , sehingga bisa memanggil composer dari setiap direktori komputer menggunak sehingga bisa memanggil composer dari setiap direktori komputer menggunakanan command line !
command line !
Setelah selesei install , (alankan command seperti gambar
Setelah selesei install , (alankan command seperti gambar di bawah ini untukdi bawah ini untuk memastikan phpunit sudah bisa kita gunakan! +pabila keluaran dari command memastikan phpunit sudah bisa kita gunakan! +pabila keluaran dari command &ang&ang
diketikan tidak seperti gambar di bawah
diketikan tidak seperti gambar di bawah ini , tutup command line , lalu ini , tutup command line , lalu buka lagibuka lagi command line &ang baru dan ketikan command &ang sama
command line &ang baru dan ketikan command &ang sama
2
2 MMee%%**ll%%++% % TTee''&&%%,,
'i sini kita akan men(alankan testing dari fungsi "
'i sini kita akan men(alankan testing dari fungsi "alidasi untuk inputanalidasi untuk inputan sebuah form barang , dimana inputann&a tidak boleh minus-. dan harus merupakan sebuah form barang , dimana inputann&a tidak boleh minus-. dan harus merupakan angka!
angka!
2
211 MeMe-.-.//' 0' 0ll U%U%'/'/+ + TTee''&%&%, J, J/-/-llh Sh S''+ +
Pertama , kita membuat sebuah class stok dan simpan dengan nama stok!php! Pertama , kita membuat sebuah class stok dan simpan dengan nama stok!php! 'i class ini diletakkan (uga skenario &ang akan di pakai, sebagai berikut :
'i class ini diletakkan (uga skenario &ang akan di pakai, sebagai berikut : *nputan angka lebih dari /. -0
*nputan angka lebih dari /. -0,e'S'+() (&h34+%:+),e'S'+() (&h34+%:+)
*nputan minus kurang dari /. -0
*nputan minus kurang dari /. -0 ,e'Pe%() (&h34+%:+),e'Pe%() (&h34+%:+)
*nputan
'an berikut listing kode programn&a untuk class stok: 12php
class stok3
pri"ate 4stok6 pri"ate 4pesan6
public function inputStok4stok.3
if4stok 1 / 77 8isnumeric4stok.. 3 4this-0setPesan9*nputan Stok Salah9.6 else3
4this-0stok ; 4stok6
public function getStok.3 return 4this-0stok6
public function setPesan4pesan.3 4this-0pesan ; 4pesan6
public function getPesan.3 return 4this-0pesan6
20
<emudian kita buat $ skema testing &aitu testing saat data berhasil dan testing saat data &ang di inputkan salah minus atau berupa huruf., berikut listing kode
ASkenario :
*nputan angka lebih dari /. -0,e'S'+() (&h34+%:+)
*nputan minus kurang dari /. -0 ,e'S'+() (&h34+%:%+)
*nputan huruf -0,e'S'+() (&h34+%:%+)
12php
include 9stok!php96
class stoktes extends PHPUnit=rameworkest)ase3
public function setUp.3 4this-0ob(Stok ; new stok.6
public function testBerhasil*nputStok.3 4this-0ob(Stok-0inputStok5.6
4stok ; 4this-0ob(Stok-0getStok.6 4this-0assert>?uals5,4stok.6
public function testStok@inus.3 4this-0ob(Stok-0inputStok-5.6 4stok ; 4this-0ob(Stok-0getStok.6 4this-0assert>?uals-5,4stok.6
public function testStokHuruf.3 4this-0ob(Stok-0inputStok9Aima9.6 4stok ; 4this-0ob(Stok-0getStok.6 4this-0assert>?uals9Aima9,4stok.6
20
B Skenario :
*nputan angka lebih dari /. -0,e'Pe%() (&h34+%:%+)
*nputan minus kurang dari /. -0 ,e'Pe%() (&h34+%:+)
*nputan huruf -0,e'Pe%() (&h34+%:+)
12php
include 9stok!php96
class stoktes extends PHPUnit=rameworkest)ase3
public function setUp.3 4this-0ob(Stok ; new stok.6
public function testBerhasil*nputStok.3 4this-0ob(Stok-0inputStok5.6
4pesan ; 4this-0ob(Stok-0getPesan.6
4this-0assert>?uals9*nputan Stok Salah9,4pesan.6
public function testStok@inus.3 4this-0ob(Stok-0inputStok-5.6
4pesan ; 4this-0ob(Stok-0getPesan.6
4this-0assert>?uals9*nputan Stok Salah9,4pesan.6
public function testStokHuruf.3 4this-0ob(Stok-0inputStok9Aima9.6 4pesan ; 4this-0ob(Stok-0getPesan.6
4this-0assert>?uals9*nputan Stok Salah9,4pesan.6
20
0Skenario :
*nputan angka lebih dari /. -0,e'S'+() (&h34+%:+)
*nputan minus kurang dari /. -0 ,e'Pe%() (&h34+%:+)
*nputan huruf -0,e'Pe%() (&h34+%:+)
12php
include 9stok!php96
class stoktes extends PHPUnit=rameworkest)ase3 public function setUp.3
4this-0ob(Stok ; new stok.6
public function testBerhasil*nputStok.3 4this-0ob(Stok-0inputStok5.6
4stok ; 4this-0ob(Stok-0getStok.6 4this-0assert>?uals5,4stok.6
public function testStok@inus.3 4this-0ob(Stok-0inputStok-5.6
4pesan ; 4this-0ob(Stok-0getPesan.6
4this-0assert>?uals9*nputan Stok Salah9,4pesan.6
public function testStokHuruf.3 4this-0ob(Stok-0inputStok9Aima9.6 4pesan ; 4this-0ob(Stok-0getPesan.6
4this-0assert>?uals9*nputan Stok Salah9,4pesan.6
20
<ita kita simpan dengan nama stoktes!php dan harus satu direktori dengan file stok!php &ang sudah kita buat sebelumn&a tadi!
22 Pe%,/*&% /%'/+ 0l '+4h4
Selan(utn&a adalah mengu(i class &ang sudah kita buat tadi dengan menggunakan PHPUnit , buka command line , lalu ketikan perintah
54h4/%&' '+'e4h4
Untuk hasil detail ketikan :
54h4/%&' 6 'e'7 '+'e4h4
'an berikut hasil pengu(ian dari masing masing skema &ang sudah dibuat :
ASkenario :
*nputan angka lebih dari /. -0,e'S'+ (&h34+%:+)
*nputan minus kurang dari /. -0 ,e'S'+ (&h34+%:%+)
*nputan huruf -0,e'S'+ (&h34+%:%+)
'an untuk detailn&a seperti gambar berikut :
B Skenario :
*nputan angka lebih dari /. -0,e'Pe% (&h34+%:%+)
*nputan minus kurang dari /. -0 ,e'Pe% (&h34+%:+)
Hasil pengu(ian seperti gambar berikut :
0Skenario :
*nputan angka lebih dari /. -0,e'S'+ (&h34+%:+)
*nputan minus kurang dari /. -0 ,e'Pe% (&h34+%:+)
*nputan huruf -0,e'Pe% (&h34+%:+)
Hasil pengu(ian seperti gambar berikut :
28 Me-./' 0l U%'/+ B3%, 9 I'e- 9 D&+% 9 % Pe%*/l% A 0l B3%, 12php class Barang 3 Cama barang D"ar string public 4nama6 Harga barang D"ar double
public 4harga6
Dparam string 4nama Dparam double 4harga
public function construct4nama, 4harga. 3 4this-0nama ; 4nama6 4this-0harga ; 4harga6 20 B 0l I'e-12php class *tem 3
@eru(uk pada EBarangE &ang diperdagangkan!
D"ar Barang
public 4barang6
Fumlah &ang diperdagangkan untuk EBarangE ini!
D"ar int
Harga &ang disepakati untuk transaksi EBarangE ini!
D"ar double
public 4harga6
'iskon untuk item ini! D"ar 'iskon public 4diskon6
Dparam Barang 4barang Dparam int 4(umlah Dparam double 4harga
public function construct4barang, 4(umlah, 4harga ; CUAA, 4diskon ; CUAA. 3
4this-0barang ; 4barang6 4this-0(umlah ; 4(umlah6
4this-0harga ; 4harga2: 4barang-0harga6 4this-0diskon ; 4diskon2: new 'iskon.6
@engembalikan total harga untuk *tem ini! Perhitungan dilakukan berdasarkan (umlah item harga, kemudian dikurangi diskon!
Dreturn double
public function getotal. 3
return 4this-0diskon-0setelah'iskon4this-0harga 4this-0(umlah.6 20 0 0l D&+% 12php class 'iskon 3
Sebuah arra& &ang berisi nilai diskon untuk item ini!
Sebuah item dapat memiliki lebih dari satu diskon, misaln&a diskon member dan diskon promosi natal!
'iskon dalam bentuk angka, misaln&a %5 untuk %5G, #/ untuk #/G dan sebagain&a!
D"ar intI public 4arr'iskon6
Dparam intI 4arr'iskon
if 4arr'iskon ;; CUAA. 3 4this-0arr'iskon ; I6 else if isarra&4arr'iskon.. 3 4this-0arr'iskon ; 4arr'iskon6 else 3 4this-0arr'iskon ; 4arr'iskonI6
@enambah nilai diskon baru, misaln&a #/ untuk #/G dan %5 untuk %5G!
Bila nilai EdiskonE berupa arra&, maka lebih dari satu nilai akan ditambahkan ke nilai diskon saat ini!
Dparam mixed 4diskon
public function tambah'iskon4diskon. 3 4this-0arr'iskonI ; 4diskon6
@enghitung (umlah diskon untuk sebuah harga! Sebagai contoh, diskon #/G untuk #//!/// akan mengembalikan nilai #/!///!
Dparam double 4harga
public function (umlah'iskon4harga. 3 4total ; /6
foreach 4this-0arr'iskon as 4diskon. 3 if 4total;;/. 3
4total ; 4harga 4diskon#//.6 4harga -; 4total6
else 3
4diskon ; 4harga 4diskon#//.6 4total J; 4diskon6 4harga -; 4diskon6 return 4total6
@enghitung sebuah harga setelah dikurangi diskon ini!
Sebagai contoh, diskon #/G untuk #//!/// akan mengembalikan nilai K/!///!
Dparam double 4harga
public function setelah'iskon4harga. 3
if count4this-0arr'iskon.;;/. return 4harga6 4total ; /6
foreach 4this-0arr'iskon as 4diskon. 3 if 4total;;/. 3
4total ; 4harga # - 4diskon#//.6 else 3
4total ; # - 4diskon#//.6
return 4total6 20 D 0l Pe%*/l% 12php class Pen(ualan 3
Comor untuk faktur pen(ualan ini!
D"ar string
public 4nomor6
anggal &ang terterak di faktur!
D"ar string
public 4tanggal6
+rra& &ang berisi satu atau lebih E*temE untuk faktur ini!
D"ar *temI
public 4arr*tem6
D"ar 'iskon public 4diskon6
Dparam string 4nomor Dparam date 4tanggal
public function construct4nomor, 4tanggal, 4diskon ; CUAA. 3 4this-0nomor ; 4nomor6
4this-0tanggal ; 4tanggal6 4this-0arr*tem ; I6
4this-0diskon ; 4diskon2: new 'iskon.6
@enambah E*temE baru untuk pen(ualan ini!
Dparam *tem 4item
public function tambah*tem4item. 3 4this-0arr*temI ; 4item6
@engembalikan total untuk transaksi ini!
Dreturn double
public function getotal. 3 4total ; /6
foreach 4this-0arr*tem as 4item. 3 4total J; 4item-0getotal.6 return 4this-0diskon-0setelah'iskon4total.6 20
<emudian kita buat $ skema testing &aitu testing saat data berhasil dan testing saat data salah berikut listing kode programn&a :
S+e- 1:
% inputan barang barang# ; #///// , ?t& ; #/. , barang% ; %///// , ?t& ; %/. otal harga tanpa diskon , expect : 5////// , di coba matches : L/////
Source code : 12php include 9barang!php96 include 9item!php96 include 9diskon!php96 include 9pen(ualan!php96
class Pen(ualanest extends PHPUnit=rameworkest)ase 3 protected function setUp. 3
parent::setUp .6
protected function tear'own. 3 parent::tear'own .6
public function testambah*tem. 3
4barang# ; new BarangMBNO-/#M, #///.6 4barang% ; new BarangMBNO-/%M, %///.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, 5..6 4pen(ualan-0tambah*temnew *tem4barang%, 5..6 4this-0assert)ount%, 4pen(ualan-0arr*tem.6 4this-0assert>?uals4barang#, 4pen(ualan-0arr*tem/I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem/I-0(umlah.6 4this-0assert>?uals4barang%, 4pen(ualan-0arr*tem#I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem#I-0(umlah.6
public function testOetotaltanpa'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6 4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?ualsL/////, 4pen(ualan-0getotal..6
public function testOetotaldengan'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6
4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/%M, M%/#Q-/#-/#M, new 'iskon#/..6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6 4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?ualsR5/////, 4pen(ualan-0getotal..6 20 S+e- 2:
% inputan barang barang# ; #///// , ?t& ; #/. , barang% ; %///// , ?t& ; %/. otal harga dengan diskon #/G , expect : R5///// , di coba matches : 5////// Source code : 12php include 9barang!php96 include 9item!php96 include 9diskon!php96 include 9pen(ualan!php96
class Pen(ualanest extends PHPUnit=rameworkest)ase 3 protected function setUp. 3
parent::setUp .6
protected function tear'own. 3 parent::tear'own .6
4barang# ; new BarangMBNO-/#M, #///.6 4barang% ; new BarangMBNO-/%M, %///.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, 5..6 4pen(ualan-0tambah*temnew *tem4barang%, 5..6 4this-0assert)ount%, 4pen(ualan-0arr*tem.6 4this-0assert>?uals4barang#, 4pen(ualan-0arr*tem/I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem/I-0(umlah.6 4this-0assert>?uals4barang%, 4pen(ualan-0arr*tem#I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem#I-0(umlah.6
public function testOetotaltanpa'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6 4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?uals5//////, 4pen(ualan-0getotal..6
public function testOetotaldengan'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/%M, M%/#Q-/#-/#M, new 'iskon#/..6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6 4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?uals5//////, 4pen(ualan-0getotal..6 20 S+e- 8:
% inputan barang barang# ; #///// , ?t& ; #/. , barang% ; %///// , ?t& ; %/. 'i inputkan tanpa harga barang, expect : arg missing
Source code : 12php include 9barang!php96 include 9item!php96 include 9diskon!php96 include 9pen(ualan!php96
class Pen(ualanest extends PHPUnit=rameworkest)ase 3 protected function setUp. 3
parent::setUp .6
protected function tear'own. 3 parent::tear'own .6
public function testambah*tem. 3 4barang# ; new BarangMBNO-/#M.6 4barang% ; new BarangMBNO-/%M.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, 5..6 4pen(ualan-0tambah*temnew *tem4barang%, 5..6 4this-0assert)ount%, 4pen(ualan-0arr*tem.6 4this-0assert>?uals4barang#, 4pen(ualan-0arr*tem/I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem/I-0(umlah.6 4this-0assert>?uals4barang%, 4pen(ualan-0arr*tem#I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem#I-0(umlah.6
public function testOetotaltanpa'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6 4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?uals5//////, 4pen(ualan-0getotal..6
public function testOetotaldengan'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/%M, M%/#Q-/#-/#M, new 'iskon#/..6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6
4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?ualsR5/////, 4pen(ualan-0getotal..6 20 S+e- : +ll true excpectation Source code : 12php include 9barang!php96 include 9item!php96 include 9diskon!php96 include 9pen(ualan!php96
class Pen(ualanest extends PHPUnit=rameworkest)ase 3
protected function setUp. 3 parent::setUp .6
protected function tear'own. 3 parent::tear'own .6
public function testambah*tem. 3
4barang# ; new BarangMBNO-/#M, #///.6 4barang% ; new BarangMBNO-/%M, %///.6
4pen(ualan-0tambah*temnew *tem4barang#, 5..6 4pen(ualan-0tambah*temnew *tem4barang%, 5..6 4this-0assert)ount%, 4pen(ualan-0arr*tem.6 4this-0assert>?uals4barang#, 4pen(ualan-0arr*tem/I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem/I-0(umlah.6 4this-0assert>?uals4barang%, 4pen(ualan-0arr*tem#I-0barang.6 4this-0assert>?uals5, 4pen(ualan-0arr*tem#I-0(umlah.6
public function testOetotaltanpa'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/#M, M%/#Q-/#-/#M.6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6 4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?uals5//////, 4pen(ualan-0getotal..6
public function testOetotaldengan'iskon. 3 4barang# ; new BarangMBNO-/#M, #/////.6 4barang% ; new BarangMBNO-/%M, %/////.6
4pen(ualan ; new Pen(ualanM*C-/%M, M%/#Q-/#-/#M, new 'iskon#/..6 4pen(ualan-0tambah*temnew *tem4barang#, #/..6
4pen(ualan-0tambah*temnew *tem4barang%, %/..6 4this-0assert>?ualsR5/////, 4pen(ualan-0getotal..6
20
2 Pe%,/*&% Pe%*/l%
Selan(utn&a adalah mengu(i class &ang sudah kita buat tadi dengan menggunakan PHPUnit , buka command line , lalu ketikan perintah
54h4/%&' 4e%*/l%4h4
Untuk hasil detail ketikan :
54h4/%&' 6 'e'7 4e%*/l%'e4h4
'an berikut hasil pengu(ian dari masing masing skema &ang sudah dibuat :
S+e- 1:
% inputan barang barang# ; #///// , ?t& ; #/. , barang% ; %///// , ?t& ; %/. otal harga tanpa diskon , matches : 5////// , di coba expect : L/////
S+e- 2:
% inputan barang barang# ; #///// , ?t& ; #/. , barang% ; %///// , ?t& ; %/. otal harga dengan diskon #/G , matches : R5///// , di coba expect : 5////// Hasil testing :
S+e- 8:
% inputan barang barang# ; #///// , ?t& ; #/. , barang% ; %///// , ?t& ; %/. 'i inputkan tanpa harga barang, expect : arg missing
Hasil testing :
S+e- :
+ll true excpectation Hasil testing :
8 Ke&-4/l%
#. Sebelum melakukan test menggunakan PHPUnit, pastikan dahulu untuk class &ang akan diu(i terdapat extends PHPUnit=rameworkest)aseT
%. Untuk assertionsT ada beberapa tipe sesuai dengan apa &ang digunakan, semisal untuk nilai &ang sama maka menggunakan assert>?uals, untuk cek han&a tipe data tertentu menggunakan assert)ontainsnl&, untuk cek (umlah data menggunakan assert)ount, dan masih ban&ak (enis assertionsT lainn&a!
$. 'ata &ang tidak mempun&ai assertionsT tetap dapat dilakukan proses testing, tetapi akan muncuk peringatan tidak ada test &ang dapat dilakukan!
R. PHPUnit menghitung waktu untuk loadT data &ang di test dan (uga memor& &ang digunakan saat s&ntax tersebut ber(alan! Fika muncul kesalahan, maka muncul