java单元测试篇:使用clover为junit单元测试做覆盖率分析(二)
之后,我们创建一个junit测试代码MoneyTest.java,来测试Money.java和MoneyBag.java类,这里我也把它放在src目录下;如果企业应用,你就要把目录分析的详细些,例如src子目录下放所有的java源代码,test子目录下放所有的junit测试代码:51Testing软件测试网s] `eg6S
51Testing软件测试网O+b5Z)M%M:IwWL+Uimport junit.framework.*;51Testing软件测试网"CL+l0ZO Y.J,?3h
XP$W2qM/fek.p0public class MoneyTest extends TestCase {
b}.P3N7a[;KZY!h KW4e0e0P:Zq$w8Jg$E0private Money f12CHF;
5j!hr@ n&^051Testing软件测试网#{xg|U;C8Z];[3^EV5sprivate Money f14CHF;51Testing软件测试网R-OL J,Q.I/f
v-UT'EnN5JX/v0private Money f7USD;51Testing软件测试网wBt&F"j/e0M
51Testing软件测试网(A#^I0y/R MmDSprivate Money f21USD;51Testing软件测试网Sq6mP"`1o,u&Gyg
51Testing软件测试网_h6]t\$[an \6~x5C~ OB051Testing软件测试网1J&U$yH5_$qprivate IMoney fMB1;
K;km#f_J eR_0[H{G NU:?7\m0private IMoney fMB2;51Testing软件测试网sQb{*Rbe
51Testing软件测试网$|-Ip/`u~2Q B1k R r51Testing软件测试网5B-x]/o^t3XD
9P6g`L}6[_*xCK0public static void main(String args[]) {51Testing软件测试网u`G ^U*Y2_KJ
51Testing软件测试网d0X}`fTjunit.textui.TestRunner.run(MoneyTest.class);
4H;`ty*i9W"t$p.W(qi0+j*V2UOxS3w"qQ0}51Testing软件测试网R0Pw3Ny[ Y
51Testing软件测试网 PL1g#E)e{Q#NWprotected void setUp() {
2n6yT g$M\/IcVp051Testing软件测试网N \4VKk$b5SN tf12CHF= new Money(12, "CHF");
1BL;HTC?'aK:e3L&QeX0!t&od&a-y0O"J|0f14CHF= new Money(14, "CHF");51Testing软件测试网D {bZ+q3BT1] O
51Testing软件测试网h e?y6y'xf7USD= new Money( 7, "USD");
ZpCG Zuq+M051Testing软件测试网-~'}.W:Zcf21USD= new Money(21, "USD");
j.qj#bv0Td"_#e&c051Testing软件测试网'Y!q9K1WzygS g
9G6^YmS6s'oV*i'H0fMB1= MoneyBag.create(f12CHF, f7USD);51Testing软件测试网[N$k&u%Cm"CI
51Testing软件测试网9S)Jnd5Z#GG2S ]fMB2= MoneyBag.create(f14CHF, f21USD);51Testing软件测试网 ~2H"NPU#E
51Testing软件测试网9f?ThUQ6Z['M}
y%r:he3@+Wd0}-ikrY(Q.E5W0public void testBagMultiply() {
M3vsos6k"wak0o1Bn?%Mvh;IU'e"@0// {[12 CHF][7 USD]} *2 == {[24 CHF][14 USD]}
1K(L){(Zh^#t0cD[JQbbp0IMoney expected= MoneyBag.create(new Money(24, "CHF"), new Money(14, "USD"));
0q_6_P1}!~J051Testing软件测试网R'HWC7SLassertEquals(expected, fMB1.multiply(2));51Testing软件测试网0i BHozo
#]8Ia;kR0assertEquals(fMB1, fMB1.multiply(1));51Testing软件测试网 |A.TIqBP&h uUQ
51Testing软件测试网&DSH;a#PI6@assertTrue(fMB1.multiply(0).isZero());51Testing软件测试网y*B&M mDcLG7rz
Pr:a~a`I0}
-oBA[$q a0A BW$p4nLZq@P4Y0public void testBagNegate() {51Testing软件测试网h$Z(i7No^6W8L'v
51Testing软件测试网qjX2N-PxJ// {[12 CHF][7 USD]} negate == {[-12 CHF][-7 USD]}51Testing软件测试网e0s-t!Zwykg
51Testing软件测试网0ZZ*J9ZhQoIMoney expected= MoneyBag.create(new Money(-12, "CHF"), new Money(-7, "USD"));51Testing软件测试网}ao$D5CrFe
[ vI$W6nD)WW,u_1I0assertEquals(expected, fMB1.negate());51Testing软件测试网;y!^#@l#K
nG+A? U _)y%K2Ds0}
`O5h}&k4x"V051Testing软件测试网re$W$\ipublic void testBagSimpleAdd() {51Testing软件测试网#rZ ql/q {l ~LY
$C.gIw {_'G0// {[12 CHF][7 USD]} + [14 CHF] == {[26 CHF][7 USD]}
9o ?lKaL)N*^o6K051Testing软件测试网aa.f~)zIMoney expected= MoneyBag.create(new Money(26, "CHF"), new Money(7, "USD"));
R!?I-_E`"M1dI051Testing软件测试网N | ~6m }assertEquals(expected, fMB1.add(f14CHF));51Testing软件测试网U0e2}I ~:P9t kK
Aw(~)J~"o)DA*a8X8a0}
qD7LCrQ051Testing软件测试网y.Q&n?Aopublic void testBagSubtract() {51Testing软件测试网GI@K B R&zr5{
/FKI'mqQzr0// {[12 CHF][7 USD]} - {[14 CHF][21 USD] == {[-2 CHF][-14 USD]}
2SDh#Q3] W!Z8o*I0\g)E]Ld[Mn0IMoney expected= MoneyBag.create(new Money(-2, "CHF"), new Money(-14, "USD"));51Testing软件测试网7s M*R7NB$n*f gI
L8aU.[LQw&b0assertEquals(expected, fMB1.subtract(fMB2));
}M&C.So i'Q.FSx_0+oBFA~Q?FO0}
.Poz_Y B5Q4i0"| CO,JP0public void testBagSumAdd() {51Testing软件测试网6in5p6IwJ)] Y r7BK
;_ bMd};~j#@r0// {[12 CHF][7 USD]} + {[14 CHF][21 USD]} == {[26 CHF][28 USD]}
Zz$O6q9e1G07D;[gM8o7sHM0IMoney expected= MoneyBag.create(new Money(26, "CHF"), new Money(28, "USD"));
ckPG;UL]-W051Testing软件测试网&IR;@%@2qassertEquals(expected, fMB1.add(fMB2));51Testing软件测试网H.o5Cr(p'x,} b
/gE&}1|a,A0}
^+u9](JCI5v"i0)x1R1YS5K)D0public void testIsZero() {
x_+Z:y*@\051Testing软件测试网-Wf%c)^,M na%cgW1^7GassertTrue(fMB1.subtract(fMB1).isZero());51Testing软件测试网&@"G*w+TWcfa0qm
1_r"y-Ij:^0assertTrue(MoneyBag.create(new Money (0, "CHF"), new Money (0, "USD")).isZero());51Testing软件测试网 xgVE~J$UZu
51Testing软件测试网}K,C,f.T/xy}51Testing软件测试网c/BhW3d
d)vn/NeFr!@0public void testMixedSimpleAdd() {51Testing软件测试网lnp(Q*u.E Z
3t$A#FDY0// [12 CHF] + [7 USD] == {[12 CHF][7 USD]}
E#v o r[Yt0la!oRP]7eMx0IMoney expected= MoneyBag.create(f12CHF, f7USD);
|.q0r_5o051Testing软件测试网9uy;H#j6Z#w XeassertEquals(expected, f12CHF.add(f7USD));
bi|b7e uuC051Testing软件测试网3w1ZT%g A5X9t(f}
9tWj,q^B;|051Testing软件测试网#B^0VZ1Q Ppublic void testBagNotEquals() {51Testing软件测试网XpgYMP-S*A6^
51Testing软件测试网,I7W ?4DP~WIMoney bag= MoneyBag.create(f12CHF, f7USD);51Testing软件测试网|R8q;P/^0J]u
_,`Ipcp\am0assertFalse(bag.equals(new Money(12, "DEM").add(f7USD)));
x0m| {a051Testing软件测试网u K#Ej:c,x){{s{'m&y}51Testing软件测试网oi5`C'n/i
F(M/fKZ[PG0public void testMoneyBagEquals() {51Testing软件测试网Z W n3R3?6qJ] C0UlfK
pfshy [Cf j0assertTrue(!fMB1.equals(null));
;]5Imu}*kK\&[H6L00u%|_5u;}%O;x u0
.b!s A|#Vg0FzP"vu'~D0assertEquals(fMB1, fMB1);
0eV.c"RO'N5Uo051Testing软件测试网1yVeeyTIMoney equal= MoneyBag.create(new Money(12, "CHF"), new Money(7, "USD"));
{1J!kuA%U;T'ZP#w0#Pd'Y/WK&EZ0assertTrue(fMB1.equals(equal));51Testing软件测试网8c#qm-}{$[mO1C%e
oUCvfv|G0Meg0assertTrue(!fMB1.equals(f12CHF));51Testing软件测试网5sI'F(i&q2jvT
51Testing软件测试网;X!J!y3i6b,DassertTrue(!f12CHF.equals(fMB1));51Testing软件测试网}O^/FTj
51Testing软件测试网*tH$meAJ1H/eassertTrue(!fMB1.equals(fMB2));51Testing软件测试网)rFz xC"vv JPv
b,F6c&w)T iZRx#?0}51Testing软件测试网e/_'H~?ORs }i
ip f v[0public void testMoneyBagHash() {51Testing软件测试网2d-l/V5o*T/{Qp
9C0mB.ZM/E0IMoney equal= MoneyBag.create(new Money(12, "CHF"), new Money(7, "USD"));51Testing软件测试网,pdc;Q$f r(c/V*Ai
51Testing软件测试网6F!yu?WzsoassertEquals(fMB1.hashCode(), equal.hashCode());51Testing软件测试网+n ok?MOQ p3@d
l|#~:Qg/j9x0}51Testing软件测试网N0E[Q2F'l)a
51Testing软件测试网Hn1Om{ jl[public void testMoneyEquals() {51Testing软件测试网s$uH)F-^ p
51Testing软件测试网xw:n9ix7KassertTrue(!f12CHF.equals(null));51Testing软件测试网VA'^ @cb3^6k'N1O
&ga,N6}9{?sQ0Money equalMoney= new Money(12, "CHF");51Testing软件测试网%p,I7F3zvJ_(G}Q9A
51Testing软件测试网C,sOp? U h8UI7DassertEquals(f12CHF, f12CHF);
$`J%s0pWs)TKYn051Testing软件测试网DjcZ)eI+\#TassertEquals(f12CHF, equalMoney);51Testing软件测试网Q@Z hSpu \
#WEQ1H,b)B4}[I0assertEquals(f12CHF.hashCode(), equalMoney.hashCode());51Testing软件测试网!hZR.QK:@'A
h1s$_XW-I0assertTrue(!f12CHF.equals(f14CHF));
'|JLW U?c&Y051Testing软件测试网yn5DY6e^/[}
6b0hi(t.A~0|lm*h O0public void testMoneyHash() {
^i3n^4Gw&CG*_0hvbJS{T0assertTrue(!f12CHF.equals(null));51Testing软件测试网&u8chJ,jh7x
| E!{/T1q4ccz0Money equal= new Money(12, "CHF");
q5^A-y2L0Y Q*WcL&x!qL+N\B0assertEquals(f12CHF.hashCode(), equal.hashCode());
'O"A$M4k:Y~0O/m0V3v,_6z]5t0}51Testing软件测试网y%F/j6}-O&~ I
P&p&OWBI3~E0public void testSimplify() {51Testing软件测试网 iNUi-l%I:Ca}3Z
51Testing软件测试网*YRk2q"B@#xi+jIMoney money= MoneyBag.create(new Money(26, "CHF"), new Money(28, "CHF"));51Testing软件测试网:^OR2Q([qp FS
gU_IQu$o0assertEquals(new Money(54, "CHF"), money);
Nv|!|uJ02K6V%_3r.{3o#L [0}51Testing软件测试网 U9{sU;E e
51Testing软件测试网LT$h6{ r-a-Apublic void testNormalize2() {51Testing软件测试网?9j%OJGh}(N
51Testing软件测试网M~eb8p8zU// {[12 CHF][7 USD]} - [12 CHF] == [7 USD]
HD`g4_6`2h0'n!F!C\'\N|0Money expected= new Money(7, "USD");51Testing软件测试网j AJ'd%~_5q
_(Gj,{8~W%m5ko0assertEquals(expected, fMB1.subtract(f12CHF));
T(d`+E!x$M:Y051Testing软件测试网!Xy RREw X l-h}
je7Gm.e x5L!F051Testing软件测试网#mDY5C9Spublic void testNormalize3() {
4s z qHCy+oU~)e"O T0s8A0@|{.eUA{ qVZ0// {[12 CHF][7 USD]} - {[12 CHF][3 USD]} == [4 USD]
"]'D q`.j'sI:fx,D051Testing软件测试网Z\ T2t OdgIMoney ms1= MoneyBag.create(new Money(12, "CHF"), new Money(3, "USD"));
c[(N6I6Dh D|;m(\051Testing软件测试网%n\p"yBh KMoney expected= new Money(4, "USD");
6t!bA6D2BP:]B051Testing软件测试网Mc-p-u1W`/`assertEquals(expected, fMB1.subtract(ms1));51Testing软件测试网pO?X.Q
+R9}ML)z!O&Z P(l:W0}51Testing软件测试网9{RR&y8C,K/j RS6gX`
51Testing软件测试网$Z(s'? T/T)v/qAGLY-Rpublic void testNormalize4() {51Testing软件测试网F ioA ^*k~w(M1X
3B];T G$p.z{(c u8NZ0// [12 CHF] - {[12 CHF][3 USD]} == [-3 USD]51Testing软件测试网cDs"[3D,h gS;K
e b2@R$z0IMoney ms1= MoneyBag.create(new Money(12, "CHF"), new Money(3, "USD"));
UfL-N%F051Testing软件测试网8f#oq6x A,gl\Money expected= new Money(-3, "USD");51Testing软件测试网:Uz!Z5]N
51Testing软件测试网?2qAC3}q Ny-O?assertEquals(expected, f12CHF.subtract(ms1));51Testing软件测试网!Xd(M;u s\6_'|
51Testing软件测试网#}&Yhjk4R)X$w2`}
bp&jq|~'c1z051Testing软件测试网N$Kv wW Dx*Gpublic void testPrint() {
Wq9aY{V0-u{@e#h6Is M%E2H0assertEquals("[12 CHF]", f12CHF.toString());51Testing软件测试网/zcS'n)K
51Testing软件测试网AC%I+g!Npo}51Testing软件测试网}LUgL
51Testing软件测试网 M;@onj,apublic void testSimpleAdd() {