不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。
it is no use doing what you like, you have got to like what you do.
5. 集成测试
上一篇 /
下一篇 2007-02-25 10:51:03
/ 个人分类:单元测试
5. 集成测试X:o+J+MV6v8~0ES/~4C fg0第五步:集成测试在测试项目中加入Deck类,使用Jtest自动生测试代码。检查自动生成的测试代码发现有部分没有判断结果。对些需要手工改写测试代码。6by?F9O.S#s0?dII0测试AddDeck方法在测试过程中需要调用toString方法对结果进行判断。预期的结果是"Card
nums=52 [AH, 2H, 3H, 4H, 5H, 6H, 7H, 8H, 9H, TH, JH, QH, KH, AD, 2D,
3D, 4D, 5D, 6D, 7D, 8D, 9D, TD, JD, QD, KD, AS, 2S, 3S, 4S, 5S, 6S, 7S,
8S, 9S, TS, JS, QS, KS, AC, 2C, 3C, 4C, 5C, 6C, 7C, 8C, 9C, TC, JC, QC,
KC]"在测试AddDeck方法的同时也对toString方法进行了测试;6nSo/d%Hl0测试burnIt方法public void testBurnIt1() throws Throwable {F$Y1d,as0 Deck deck=new Deck();51Testing软件测试网 _/s8i8h(a1Bt deck.addDeck(1);51Testing软件测试网OL/H1x?2e
i1Bh deck.burnIt();51Testing软件测试网q3qyb1|
D8s(J U:f String RET=deck.toString() ;$a9C!~M0U:K4y@0X0 String Exp="Card nums=0 []";W/bH/sS#fDcB4i.[0 assertEquals(Exp, RET);bFKW
UzJ0 }51Testing软件测试网%sS }e"uO先增加一幅牌然后调用burnIt方法清除,使用toString方法取得返回结果,对返回结果进行判断。也可以使用getCards方法对测试结果进行判断。个人觉得getCards方法可能更加适合,因为该方法中并没有任何操作,不会对测试产生影响。下面的测试方法会不会更好一些呢?51Testing软件测试网[E|)i7_(F P@|8^ public void testBurnIt1() throws Throwable {p+x.w+~$kj0 Deck deck=new Deck();J^s/kLd*[t5ws0 deck.addDeck(1); c&}f5a7Ovpl0 deck.burnIt();51Testing软件测试网 [8|p6V^9]x Vector RET=deck.getCards();51Testing软件测试网As pz2t!VpU8x3c assertEquals(0, RET.size());nj1wC0C1n]x0 }51Testing软件测试网*d1i$J7`1P6Ynf测试getCard方法testGetCard1测试使用取边界值与预期值进行比较判断测试正确性的测试策略。下例为取第一个值;
qTH*P7J:\*z)@F/yx:W0 public void testGetCard1() throws Throwable {51Testing软件测试网o| wydw,E Deck deck=new Deck();v
d"L*b5V/o"?
m6t1c0 deck.addDeck( 1);J+u3dq
`0 Card card=deck.getCard();51Testing软件测试网]S [F6?;G ~ Card card2=new Card();51Testing软件测试网 mv1Uffi boolean RET1=card.equals( card2);51Testing软件测试网qv;G&t c:t,sRY6m3] assertEquals(true,RET1);51Testing软件测试网_+]i$Pd)]R }51Testing软件测试网,dq.Zw}8[`-Y下面的例子中,测试了Deck类的异常情况;在测试过程中测试出现异常(不是错误)。对于这个例子我们是否需要考虑这种特殊情况呢?在BJ这个项目中会不会出现不增加牌而使用牌的情况呢?对于这种情况是否需要考虑程序的整体架构呢?(这种异常可能会由其他的代码来处理)51Testing软件测试网l^6[4W1hS public void testGetCard3() throws Throwable {nm~}{0z0 Deck deck=new Deck();51Testing软件测试网q*L*kIX8xs!J Card card = null;;@E%Y!^
^0 card=deck.getCard();;e[onSCj0 assertEquals(null,card);51Testing软件测试网LO0@ fIK }51Testing软件测试网4M%e&P$hIS:j测试getCards方法testGetCards1测试用例判断返回长度是否正确;51Testing软件测试网xGKWg(['swW P public void testGetCards1() throws Throwable {51Testing软件测试网x$c2j(` P;_k[ Deck deck=new Deck();4YW)jR'LA0 deck.addDeck(1);
b&~Q]$qp#^*[0 Vector deckcard=deck.getCards(); 51Testing软件测试网
nn6U
[:k assertEquals(52,deckcard.size());W,\ hl1~"?9lf0 }51Testing软件测试网8|8H&C6_\testGetCards2测试用例从返回的结果中取任意值判断内容是否正确;51Testing软件测试网9C8l,Dnz(} public void testGetCards2() throws Throwable {&Vr ?$Zd]0 Deck deck=new Deck();51Testing软件测试网'}E4zI
] deck.addDeck(1);