不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。
it is no use doing what you like, you have got to like what you do.
7. StandardDealerHand类测试
上一篇 /
下一篇 2007-02-25 10:52:05
/ 个人分类:单元测试
7. StandardDealerHand类测试51Testing软件测试网X*D(Sq#GK$]O%B51Testing软件测试网 K;H(e]0r7mu2E;B第七步:StandardDealerHand类测试StandardDealerHand类继承StandardBlackJackHand类,并完成了部分BlackJackHand部分,及对部分StandardBlackJackHand类的方法实现了重载。LhI
sH0_Sy]V&p\9b0在对StandardDealerHand类测试过程中考虑到了另外一个问题,一般开发过程中一个Java类方法的代码平均在400行左右(该数据来源于对公司内部开发人员的调查),在对400行的代码进行条件覆盖时需要对代码有一定的了解,这对白盒测试的实施有一定的难度,并且对白盒测试的实施进度也有一定的影响。51Testing软件测试网X0JyiA5?:J&z考虑采用新的测试策略,先保证代码覆盖,然后在代码覆盖的前提下根据功能设计相应的测试用例,这时将测试对象按黑盒处理。这个策略与第六步的策略刚好相反,在第六步当时考虑的策略是在熟悉代码的前提下设计测试,而在这一步则不需要熟悉代码只需要考虑实现的功能。51Testing软件测试网cskN(x F7T@5Pc这两种策略各有优缺点,具体实现哪种策略,要根据实际工作情况确定。$g'P/pOP'Kd0例:takeTurn方法用来得到走法,当小于17分时返回结果为要牌,17至21分之间为停牌,大于21分为爆牌。对此考虑4种情况:51Testing软件测试网0{c#ut,J
}
ib$n· 小于17分,设置测试值16分;51Testing软件测试网[M IGq d5zC jj· 等于17分,设置测试值17分;!^2n*x`\2X&x0· 等于21分,设置测试值21分;0d#P:UA$vL9TU0· 大于21分,设置测试值22分;j9q3xRnZ|g~0对以上四种情况分别设计测试用例,然后执行测试,分析takeTurn方法代码覆盖率,如果仍然有代码未覆盖则添加相应的测试用例。51Testing软件测试网y3G{'c$@6U| public void testTakeTurn1() throws Throwable {51Testing软件测试网:J;A C1aFa StandardDealerHand THIS=new StandardDealerHand();51Testing软件测试网,D2s\|P;K-~iIng Card card;51Testing软件测试网+YY/P)@W4Wn@O card=new Card(Suit.CLUB,'7');51Testing软件测试网r)?2S:[CtE!V5Yu THIS.addCard( card);;\ RRKT0h["?0 card=new Card(Suit.CLUB,'T');51Testing软件测试网R;A0A!sW5|1T/l THIS.addCard( card);51Testing软件测试网%PCQ`KbzB TurnResult RET=THIS.takeTurn();51Testing软件测试网3}9]8y2r$E'pG assertSame(TurnResult.STAND,RET);.Bxa
o [0 }51Testing软件测试网
Iz7Ac9EB
|d public void testTakeTurn2() throws Throwable {51Testing软件测试网e_9Q\"Pj!N StandardDealerHand THIS=new StandardDealerHand();51Testing软件测试网lV8O)V-G#D)b(iS Card card;51Testing软件测试网^Me+E9G*t+f\ card=new Card(Suit.CLUB,'6');q7g1HW5OjrJ0 THIS.addCard( card);51Testing软件测试网_J8OO"i6e8f;b@8P&D card=new Card(Suit.CLUB,'T');51Testing软件测试网YZX&L4T h*u THIS.addCard( card);51Testing软件测试网Q(R:CCo/vB^| ~ f TurnResult RET=THIS.takeTurn();51Testing软件测试网9Fb*F4VM"B assertSame(TurnResult.HIT,RET);-j0E"KZn+i,{0 } mh(}5j4~
I"T0 public void testTakeTurn3() throws Throwable {v)K3?"`s0 StandardDealerHand THIS=new StandardDealerHand();51Testing软件测试网S%[S#iM Card card;51Testing软件测试网@"c"d7f:F` O)I1iC card=new Card(Suit.CLUB,'Q');Jz^j"zc3?rUI0 THIS.addCard( card);51Testing软件测试网Zz'tD4M'jj$Nl card=new Card(Suit.CLUB,'T');51Testing软件测试网 \#WCY
q THIS.addCard( card);51Testing软件测试网:j|8R%^l Y.PdL#mU card=new Card(Suit.CLUB,'J');E{Esr0 THIS.addCard( card);51Testing软件测试网O
G
kb'j-^Um!b TurnResult RET=THIS.takeTurn();L;S#@1F"_ H
@0 assertSame(TurnResult.BUST,RET);+Ki
U3{x0 }5[];Xx)S0 public void testTakeTurn4() throws Throwable {L3\O%v;N9e0 StandardDealerHand THIS=new StandardDealerHand();}WZ$??tO-U"Rxm0 Card card;:O3ni3g OWFt0 card=new Card(Suit.CLUB,'A');51Testing软件测试网
M.Y9e9[.p H `7IzY
MR;b THIS.addCard( card);|B
`_ Q0 card=new Card(Suit.CLUB,'T');6reQU Yz2]0 THIS.addCard( card);51Testing软件测试网1Kkh,C
AN8LA TurnResult RET=THIS.takeTurn(); p;[)J5M_0 assertSame(TurnResult.STAND,RET);@0Lv&n