testing php mysql applications with phpunit/dbunit

42
!"#$#%&#’ )*+ ,*-./ 012 3 456#788* ,#’79+ :%;< !"#$%&’ )*)+,-./0 1223%45$%6&# !"#$%&’ )*)+,-./0 1223%45$%6&# 7%$8 )*)9&%$+:;9&%$ 7%$8 )*)9&%$+:;9&%$ !"#$%&’$( *"+,-$(( .&&/011%"#$%&’$(2#"+,-$((34"1 5/+’6 78 &. 9::;

Upload: oleksiy-kovyrin

Post on 12-Nov-2014

1.026 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Testing PHP MySQL Applications with PHPUnit/DbUnit

!"#$#%&#'()*+

,*-./(012(3(456#788*(,#'79+(:%;<

!"#$%&'()*)+,-./0(1223%45$%6&#(!"#$%&'()*)+,-./0(1223%45$%6&#(7%$8()*)9&%$+:;9&%$7%$8()*)9&%$+:;9&%$

!"#$%&'$()*"+,-$((

.&&/011%"#$%&'$(2#"+,-$((34"1))!!

5/+'6)78&.)9::;

Page 2: Testing PHP MySQL Applications with PHPUnit/DbUnit

"#$!%!&'

! ()*+,-.+/!0)12'+//! 34!5)+1,!$67!/)8-!9)):! %/;$6;)7!./!-#)!!!!!!!!!!<=<!<1$>)?-!,./?)!@444

! A);)6$B)1!$C!<=<D/.-! =)6B,!)/-)1B1.,),!9.-#!E-#)!./-1$7F?-.$/!$CG!!!HF+6.-5!+,,F1+/?)!C$1!<=<!B1$>)?-,

Page 3: Testing PHP MySQL Applications with PHPUnit/DbUnit

"#$!+1)!5$FI

! J$F1!)8B)1.)/?)!9.-#

! <=<!KI! LL<I! M),-./2I

! <=<D/.-I! A*D/.-I

Page 4: Testing PHP MySQL Applications with PHPUnit/DbUnit

"#5!-),-I

! N$'B+/.),!7);)6$B!'$1)!+/7!'$1)!)/-)1B1.,)O?1.-.?+6!+BB6.?+-.$/,!9.-#!<=<

! M),-,!#)6B!-$!'+:)!,F1)!-#+-!-#),)!+BB6.?+-.$/,!9$1:!?$11)?-65

Page 5: Testing PHP MySQL Applications with PHPUnit/DbUnit

!"#$%%&'%()$*+,- .",/&'%(01*+,-

Page 6: Testing PHP MySQL Applications with PHPUnit/DbUnit

"#+-!/))7,!-),-./2I

! ")*!&BB6.?+-.$/

! 0+?:)/7! 0F,./),,!P$2.?

! A+-+*+,)!P+5)1

! Q)F,+*6)!N$'B$/)/-,

! R1$/-)/7! R$1'!<1$?),,./2S!M)'B6+-),S!TTT

! UQ.?#!%/-)1C+?),V!9.-#!&W&XS!W(LYS!TTT

! R))7,S!")*!()1;.?),S!TTT

Page 7: Testing PHP MySQL Applications with PHPUnit/DbUnit

&/7!#$9!7$!9)!-),-!.-I

! ")*!&BB6.?+-.$/

! 0+?:)/7! RF/?-.$/+6!M),-./2!$C!-#)!*F,./),,!6$2.?!9.-#!D/.-!M),-,

! Q)F,+*6)!N$'B$/)/-,

! Z8-)1/+6!?$'B$/)/-,!,#$F67!#+;)!-#).1!$9/!F/.-!-),-,

! R1$/-)/7! &??)B-+/?)!M),-,!$1!(5,-)'!M),-,!-#+-!+1)!1F/!U./!-#)!*1$9,)1V

! M),-./2!$C!C))7,S!9)*!,)1;.?),S!)-?T!9.-#!D/.-!M),-,

! N$'B+-.*.6.-5!M),-,!C$1!LB)1+-./2!(5,-)'![!01$9,)1!?$'*./+-.$/,

! <)1C$1'+/?)!M),-,!+/7!()?F1.-5!M),-,

Page 8: Testing PHP MySQL Applications with PHPUnit/DbUnit

M),-./2!($C-9+1)

! N$'B$/)/-!M),-,! Z8)?F-+*6)!?$7)!C1+2')/-,S!,$!?+66)7!D/.-!M),-,S!-),-!-#)!?$11)?-/),,!$C!B+1-,S!F/.-,S!$C!-#)!,$C-9+1)!E,5,-)'!F/7)1!-),-G

! (5,-)'!M),-,! N$/7F?-)7!$/!+!?$'B6)-)S!./-)21+-)7!,5,-)'!-$!);+6F+-)!-#)!,5,-)'\,!?$'B6.+/?)!9.-#!.-,!,B)?.C.)7!1)HF.1)')/-,T!E".:.B)7.+G

! Y$/ORF/?-.$/+6!M),-,! <)1C$1'+/?)S!(-+*.6.-5S!()?F1.-5S!TTT

Page 9: Testing PHP MySQL Applications with PHPUnit/DbUnit

M),-./2!($C-9+1)

! A);)6$B)1!M),-,! Z/,F1)!-#+-!-#)!?$7)!9$1:,!?$11)?-65!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! &??)B-+/?)!M),-,! Z/,F1)!-#+-!-#)!?$7)!7$),!9#+-!-#)!?F,-$')1!9+/-,

Page 10: Testing PHP MySQL Applications with PHPUnit/DbUnit

M$$6,!C$1!M),-./2

! M$!'+:)!E?$7)G!-),-./2!;.+*6)S!2$$7!-$$6!,FBB$1-!.,!/))7)7

! M#.,!.,!9#)1)!+!-),-./2!C1+')9$1:!,F?#!+,!<=<D/.-!?$'),!./-$!B6+5

! Q)HF.1)')/-,! Q)F,+*6)!-),-!)/;.1$/')/-

! (-1.?-!,)B+1+-.$/!$C!B1$7F?-.$/!?$7)!+/7!-),-!?$7)

! &F-$'+-.?!)8)?F-.$/!$C!-),-!?$7)

! &/+65,.,!$C!-#)!1),F6-

! Z+,5!-$!6)+1/!-$!F,)!+/7!)+,5!-$!F,)

Page 11: Testing PHP MySQL Applications with PHPUnit/DbUnit

M$$6,!C$1!M),-./2!<=<![!")*!&BB6.?+-.$/,

! D/.-!M),-,! <=<D/.-

! (.'B6)M),-

! (5,-)'!M),-,! ()6)/.F'

! <=<D/.-!]!()6)/.F'!QN

! Y$/ORF/?-.$/+6!M),-,! <)1C$1'+/?)S!P$+7S!(-1),,S!&;+.6+*.6.-5S!TTT

! +*S!#--B)1CS!W^)-)1S!_1./7)1S!LB)/(M&S!TTT

! ()?F1.-5

! N#$1.`$

Page 12: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-!E#--Ba[[B#BF/T.-[G

! M),-!R1+')9$1:! ^)'*)1!$C!-#)!8D/.-!C+'.65!$C!-),-!C1+')9$1:,

! ^$?:!L*>)?-,

! A*D/.-

! %/-)21+-.$/! B#BD/7)1N$/-1$6

! ()6)/.F'!QN

! Z;)/!^$1)!N$$6!(-FCC!aOG! N$7)!N$;)1+2)

! ($C-9+1)!^)-1.?,!+/7!<1$>)?-!^),,!A)-)?-.$/

! TTT

Page 13: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!%/,-+66+-.$/

!"#$%&'()*+*,*-)'(*./'00)1234!.5$)(*-)'(6-/-704863)93340:*;/'00)1*<-)'(6-/-704863)<*!7..))3)3=4!.5$)(>*5?*./'00)1*<-)'(6-/-704863)<*!7..))3)3

!"#$%&'()*+*,*-)'(*40!8'11*-/-7048@ABAC04835&015'340:*ABAC0482D6E6FF68:G*666H8'(840:*85*35&015'3*ABAC0482D6E6FF68:G*IEJFKLMN*">8)!O666666666666666666666666666666666666666666350)P*EJFKLMN*">8)!40!8'11*5QP*./'00)1P@@-)'(6-/-704863)@ABAC0482D6E6FF

Page 14: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)RS-/-.1'!!*T'0Q9..5708U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)Y******************

****************************************************************************

********************************************************************************************************************

**********Z

Page 15: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)RS-/-.1'!!*T'0Q9..5708U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)Y*********************

********************************************************************************

****-7"14.*?70.8450*8)!8T'1'0.)[![0484'11>\)(5IO****Y************************************************************************************Z**********Z

Page 16: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)RS-/-.1'!!*T'0Q9..5708U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)Y*********************

********************************************************************************

****-7"14.*?70.8450*8)!8T'1'0.)[![0484'11>\)(5IO****Y********]"'*^*0)&*T'0Q9..5708_********]8/4!2`'!!)(8ab7'1!IJK*]"'2`:)8T'1'0.)IOO_****Z**********Z

Page 17: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)RS-/-.1'!!*T'0Q9..5708U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)Y****-(58).8)3*]"'_

****-(58).8)3*?70.8450*!)8C-IO****Y********]8/4!2`"'*^*0)&*T'0Q9..5708_****Z

****-7"14.*?70.8450*8)!8T'1'0.)[![0484'11>\)(5IO****Y********]8/4!2`'!!)(8ab7'1!IJK*]8/4!2`"'2`:)8T'1'0.)IOO_****Z

****@@*666Z

Page 18: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)RS-/-.1'!!*T'0Q9..5708U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)Y****@@*666

****-7"14.*?70.8450*8)!8T'1'0.);'0058T).5%)c):'84$)IO****Y********8(>*Y************]8/4!2`"'2`&48/3('&d50)>IFO_********Z

********.'8./*IT'0Q9..5708aV.)-8450*])O*Y************]8/4!2`'!!)(8ab7'1!IJK*]8/4!2`"'2`:)8T'1'0.)IOO_

************()87(0_********Z

********]8/4!2`?'41IO_****Z

****@@*666Z

Page 19: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)RS-/-.1'!!*T'0Q9..5708U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)Y****@@*666

****-7"14.*?70.8450*8)!8T'1'0.);'0058T).5%)c):'84$)IO****Y********8(>*Y************]8/4!2`"'2`3)-5!48d50)>I2FO_********Z

********.'8./*IT'0Q9..5708aV.)-8450*])O*Y************]8/4!2`'!!)(8ab7'1!IJK*]8/4!2`"'2`:)8T'1'0.)IOO_

************()87(0_********Z

********]8/4!2`?'41IO_****Z

****@@*666Z

Page 20: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!&!R.1,-!Z8+'B6)

!"#$%&'()*+*,*-/-7048*T'0Q9..5708U)!8ABAC048*D6D6J*">*H)"'!84'0*T)(:%'006

666

U4%)P*J*!).503!

ef*ID*8)!8!O

!"#$%&'()*+*,*-/-7048*228)!835V*T'0Q9..5708U)!8ABAC048*D6D6J*">*H)"'!84'0*T)(:%'006

T'0Q9..5708*2*T'1'0.)*4!*40484'11>*G)(5*2*T'1'0.)*.'0058*").5%)*0):'84$)

Page 21: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/

! ^.?#+)6!P.;)65!W1T!#+,!B$1-)7!-#)!A*D/.-!)8-)/,.$/!C$1!WD/.-!-$!<=<D/.-! <=<>('&?@A&"(%'B(%?C$&$#$%"?D"%&E$%"

! .,!F,)7!-$!-),-!7+-+*+,)O71.;)/!B1$>)?-,!+/7! BF-,!5$F1!7+-+*+,)!./-$!+!:/$9/!,-+-)!*)-9))/!-),-!1F/,! M#.,!+;$.7,!B1$*6)',!9.-#!$/)!-),-!?$11FB-./2!-#)!7+-+*+,)!C$1!$-#)1!-),-,

! #+,!-#)!+*.6.-5!-$!)8B$1-!+/7!.'B$1-!5$F1!7+-+*+,)!7+-+!-$!+/7!C1$'!X^P!7+-+,)-,

Page 22: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/

! A*D/.-!F,),!<AL!-$!?$//)?-!-$!-#)!7+-+*+,)OF/7)1O-),-

! M#)!-),-)7!+BB6.?+-.$/!7$),!/$-!#+;)!-$!F,)!<AL!.-,)6C!C$1!-#.,!-$!9$1:! J$F!?+/!-#)1)C$1)!F,)!"A&1-F%G6'!./!5$F1!+BB6.?+-.$/!+/7!"A&1/4B?-F%G6!./!5$F1!-),-,S!!!!!C$1!./,-+/?)

Page 23: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y

***********

Z

Page 24: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****-(58).8)3*]-35_***************-7"14.*?70.8450*WW.50!8(7.8IO*Y********]8/4!2`-35*^*ABAC048WC841WA=ePP?'.85(>I**********g%>!b1P@@8)!8#15.'1/5!8@8)!8g********O_

********T'0Q9..5708PP.()'8)U'"1)I]8/4!2`-35O_****Z

Z

Page 25: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****-(58).8)3*]-35_***************-7"14.*?70.8450*WW.50!8(7.8IO*Y********]8/4!2`-35*^*ABAC048WC841WA=ePP?'.85(>I**********g%>!b1P@@8)!8#15.'1/5!8@8)!8g********O_

********T'0Q9..5708PP.()'8)U'"1)I]8/4!2`-35O_****Z

****-(58).8)3*?70.8450*:)8;500).8450IO*Y********()87(0*]8/4!2`.()'8)=)?'718=T;500).8450I]8/4!2`-35K*g%>!b1gO_****Z

Z

Page 26: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****-(58).8)3*]-35_***************-7"14.*?70.8450*WW.50!8(7.8IO*Y********]8/4!2`-35*^*ABAC048WC841WA=ePP?'.85(>I**********g%>!b1P@@8)!8#15.'1/5!8@8)!8g********O_

********T'0Q9..5708PP.()'8)U'"1)I]8/4!2`-35O_****Z

****-(58).8)3*?70.8450*:)8;500).8450IO*Y********()87(0*]8/4!2`.()'8)=)?'718=T;500).8450I]8/4!2`-35K*g%>!b1gO_****Z

****-(58).8)3*?70.8450*:)8='8'H)8IO*Y********()87(0*]8/4!2`.()'8)X1'8hdi='8'H)8Ig@-'8/@85@!))36V%1gO_****ZZ

Page 27: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/R3'8'!)8`**R'..5708*'..5708W07%")(^<FLjDkjJDlkjlEJkNl<*"'1'0.)^<FJJ6JJ<*@`**R'..5708*'..5708W07%")(^<FLjDlkNMEDJEFLJlM<*"'1'0.)^<FEFl6JJ<*@`**R'..5708*'..5708W07%")(^<FEDkNlFEDLMEDlFNL<*"'1'0.)^<Nj6JJ<*@`**R'..5708*'..5708W07%")(^<FLjDlkNMEDJEFLJlM<*"'1'0.)^<FEFl6JJ<*@`R@3'8'!)8`

Page 28: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****@@*666

****-7"14.*?70.8450*8)!8c)&9..5708IO*Y

****ZZ

Page 29: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****@@*666

****-7"14.*?70.8450*8)!8c)&9..5708IO*Y********]"'*^*0)&*T'0Q9..5708=TIgFEDkLlMNjFEDkLlMNgK*]8/4!2`-35O_

****ZZ

Page 30: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****@@*666

****-7"14.*?70.8450*8)!8c)&9..5708IO*Y********]"'*^*0)&*T'0Q9..5708=TIgFEDkLlMNjFEDkLlMNgK*]8/4!2`-35O_

********]!)8*^*]8/4!2`.()'8)X1'8hdi='8'H)8I**********g@-'8/@85@'?8)(20)&2'..57086V%1g********O_

****ZZ

Page 31: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/RS-/-()b74()W50.)*gABAC048@aV8)0!450!@='8'"'!)@U)!8;'!)6-/-g_*.1'!!*T'0Q9..5708=TU)!8*)V8)03!*ABAC048WaV8)0!450!W='8'"'!)WU)!8;'!)*Y****@@*666

****-7"14.*?70.8450*8)!8c)&9..5708IO*Y********]"'*^*0)&*T'0Q9..5708=TIgFEDkLlMNjFEDkLlMNgK*]8/4!2`-35O_

********]!)8*^*]8/4!2`.()'8)X1'8hdi='8'H)8I**********g@-'8/@85@'?8)(20)&2'..57086V%1g********O_

********]8/4!2`'!!)(8U'"1)!ab7'1I**********]!)82`:)8U'"1)Ig'..5708gOK**********]8/4!2`:)8;500).8450IO***************2`.()'8)='8'H)8IO***************2`:)8U'"1)Ig'..5708gO********O_****ZZ

Page 32: Testing PHP MySQL Applications with PHPUnit/DbUnit

<=<D/.-a!M#)!A*D/.-!Z8-)/,.$/R3'8'!)8`**R'..5708*'..5708W07%")(^<FLjDkjJDlkjlEJkNl<*"'1'0.)^<FJJ6JJ<*@`**R'..5708*'..5708W07%")(^<FLjDlkNMEDJEFLJlM<*"'1'0.)^<FEFl6JJ<*@`**R'..5708*'..5708W07%")(^<FEDkNlFEDLMEDlFNL<*"'1'0.)^<Nj6JJ<*@`**R'..5708*'..5708W07%")(^<FLjDlkNMEDJEFLJlM<*"'1'0.)^<FEFl6JJ<*@`**R'..5708*'..5708W07%")(^<FEDkLlMNjFEDkLlMN<*"'1'0.)^<J6JJ<*@`R@3'8'!)8`

Page 33: Testing PHP MySQL Applications with PHPUnit/DbUnit

&;$.7!-),-./2!+2+./,-!^5(bP!.C!5$F!?+/

! "#)/!-),-./2!<=<!?$7)!-#+-!F,),!<AL!-$!?$//)?-!-$!+!7+-+*+,)S!.-!'+:),!,)/,)!-$!:))B!5$F1!(bP!?$'B+-.*6)!9.-#!(bP.-)! Y$!,)1;)1!"!Y$!./-)1OB1$?),,!?$''F/.?+-.$/! %/O^)'$15!A+-+*+,),!"!Y$!A.,:!%[L

D,)1 (5,-)' N<D M$-+6

<AL![!^5(bP H3I8% :3;J% K:L 793:KM%

<AL![!(bP.-)!EC.6)G 83:7% 738K% MHL 7:3H8I%

<AL![!(bP.-)!E')'$15G H37M% :3M;% IIL H3;KI%

Page 34: Testing PHP MySQL Applications with PHPUnit/DbUnit

(-F*,!+/7!^$?:,

! M),-,!-#+-!$/65!-),-!$/)!-#./2!+1)!'$1)!./C$1'+-.;)!-#+/!-),-,!9#)1)!C+.6F1)!?+/!?$')!C1$'!'+/5!,$F1?),

! =$9!?+/!5$F!.,$6+-)!5$F1!-),-,!C1$'!)8-)1/+6!./C6F)/?),I

! (.'B65!BF-S!*5!1)B6+?./2!-#)!)8B)/,.;)S!'),,5S!F/1)6.+*6)S!,6$9S!?$'B6.?+-)7!1),$F1?),!9.-#!,-F*,!-#+-!+1)!+F-$'+-.?+665!2)/)1+-)7!C$1!-#)!BF1B$,)!$C!5$F1!-),-,

Page 35: Testing PHP MySQL Applications with PHPUnit/DbUnit

(-F*,!+/7!^$?:,

! AF''5

! Y$-!-#)!1)+6!$*>)?-

! R+:)

! D,+*6)!C$1!-),-./2!*F-!/$-!C$1!1)+6!>$*

! (-F*

! R+:)!-#+-!1)-F1/,!?+//)7!7+-+

! (B5

! (-F*!-#+-!1)?$17,!?+66)7!')-#$7,S!)-?T

! ^$?:

! (B5!9.-#!)8B)?-+-.$/,

Page 36: Testing PHP MySQL Applications with PHPUnit/DbUnit

(-F*,!+/7!^$?:,RS-/-()b74()W50.)*gABAC048@X('%)&5(Q6-/-g_*.1'!!*e"!)($)(U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)*Y****-7"14.*?70.8450*8)!8C-3'8)[!;'11)3e0.)IO*Y***************************************************************************************************************************************************************************************************************************************************************************************************************************************ZZS`

Page 37: Testing PHP MySQL Applications with PHPUnit/DbUnit

(-F*,!+/7!^$?:,RS-/-()b74()W50.)*gABAC048@X('%)&5(Q6-/-g_*.1'!!*e"!)($)(U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)*Y****-7"14.*?70.8450*8)!8C-3'8)[!;'11)3e0.)IO*Y********]5"!)($)(*^*]8/4!2`:)8d5.QI**********ge"!)($)(gK*'(('>Ig7-3'8)gO********O_****************************************************************************************************************************************************************************************************************************************************ZZS`

Page 38: Testing PHP MySQL Applications with PHPUnit/DbUnit

(-F*,!+/7!^$?:,RS-/-()b74()W50.)*gABAC048@X('%)&5(Q6-/-g_*.1'!!*e"!)($)(U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)*Y****-7"14.*?70.8450*8)!8C-3'8)[!;'11)3e0.)IO*Y********]5"!)($)(*^*]8/4!2`:)8d5.QI**********ge"!)($)(gK*'(('>Ig7-3'8)gO********O_*********]5"!)($)(2`)V-).8!I]8/4!2`50.)IOO*****************2`%)8/53Ig7-3'8)gO*****************2`&48/I]8/4!2`)b7'1U5Ig!5%)8/40:gOO_**********************************************************************************************************ZZS`

Page 39: Testing PHP MySQL Applications with PHPUnit/DbUnit

(-F*,!+/7!^$?:,RS-/-()b74()W50.)*gABAC048@X('%)&5(Q6-/-g_*.1'!!*e"!)($)(U)!8*)V8)03!*ABAC048WX('%)&5(QWU)!8;'!)*Y****-7"14.*?70.8450*8)!8C-3'8)[!;'11)3e0.)IO*Y********]5"!)($)(*^*]8/4!2`:)8d5.QI**********ge"!)($)(gK*'(('>Ig7-3'8)gO********O_*********]5"!)($)(2`)V-).8!I]8/4!2`50.)IOO*****************2`%)8/53Ig7-3'8)gO*****************2`&48/I]8/4!2`)b7'1U5Ig!5%)8/40:gOO_*********]!7"m).8*^*0)&*H7"m).8_********]!7"m).82`'88'./I]5"!)($)(O_********]!7"m).82`35H5%)8/40:IO_****ZZS`

Page 40: Testing PHP MySQL Applications with PHPUnit/DbUnit

^$?:./2!-#)!A+-+*+,)

! %7)+665!-#)!!"#$%&##'()*$+!+/7!-#)!,&-#$#.&%+&'()*$+!$C!+!7$'+./!)/-.-5!,F?#!+,!-#)!*+/:!+??$F/-!.,!E'$7)66)7!+/7G!.'B6)')/-)7!./!,)B+1+-)!?6+,,),! ()B+1+-.$/!$C!N$/?)1/,

! M#.,!+66$9,!C$1!'$?:./2!).-#)1!$*>)?-!-$!-),-!-#)!$-#)1!./!.,$6+-.$/! 0F-!5$F!,-.66!9+/-!-$!-),-!-#)!-&/('$%.&-/+.$)%!*)-9))/!-#)!-9$S!-$$

! RF-F1)!"$1:! P);)1+2)!^5(bP!<1$85!-$!'$?:!-#)!7+-+*+,)

Page 41: Testing PHP MySQL Applications with PHPUnit/DbUnit

M#)!Z/7

! M#+/:!5$F!C$1!5$F1!./-)1),-c! M#),)!,6.7),!9.66!*)!+;+.6+*6)!,#$1-65!$/!!!!!!!#--Ba[[,)*+,-.+/O*)12'+//T7)[-+6:,[T

Page 42: Testing PHP MySQL Applications with PHPUnit/DbUnit

P.?)/,)" M#.,!B1),)/-+-.$/!'+-)1.+6!.,!BF*6.,#)7!F/7)1!-#)!&--1.*F-.$/O(#+1)!&6.:)!3T4!D/B$1-)7!6.?)/,)T

" J$F!+1)!C1))a

# $6(.85<"!d!-$!?$B5S!7.,-1.*F-)!+/7!-1+/,'.-!-#)!9$1:T

# $6(=">%?!d!-$!+7+B-!-#)!9$1:T

" D/7)1!-#)!C$66$9./2!?$/7.-.$/,a

$ 1$$<%;@$%6&A!J$F!'F,-!+--1.*F-)!-#)!9$1:!./!-#)!'+//)1!,B)?.C.)7!*5!-#)!+F-#$1!$1!6.?)/,$1!E*F-!/$-!./!+/5!9+5!-#+-!,F22),-,!-#+-!-#)5!)/7$1,)!5$F!$1!5$F1!F,)!$C!-#)!9$1:GT

$ .85<"(13%B"A!%C!5$F!+6-)1S!-1+/,C$1'S!$1!*F.67!FB$/!-#.,!9$1:S!5$F!'+5!7.,-1.*F-)!-#)!1),F6-./2!9$1:!$/65!F/7)1!-#)!,+')S!,.'.6+1!$1!+!?$'B+-.*6)!6.?)/,)T

" R$1!+/5!1)F,)!$1!7.,-1.*F-.$/S!5$F!'F,-!'+:)!?6)+1!-$!$-#)1,!-#)!6.?)/,)!-)1',!$C!-#.,!9$1:T

" &/5!$C!-#)!+*$;)!?$/7.-.$/,!?+/!*)!9+.;)7!.C!5$F!2)-!B)1'.,,.$/!C1$'!-#)!?$B51.2#-!#$67)1T

" Y$-#./2!./!-#.,!6.?)/,)!.'B+.1,!$1!1),-1.?-,!-#)!+F-#$1\,!'$1+6!1.2#-,T