JUnit单元测试覆盖率Word下载.docx

上传人:b****2 文档编号:3108325 上传时间:2023-05-01 格式:DOCX 页数:24 大小:219.34KB
下载 相关 举报
JUnit单元测试覆盖率Word下载.docx_第1页
第1页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第2页
第2页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第3页
第3页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第4页
第4页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第5页
第5页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第6页
第6页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第7页
第7页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第8页
第8页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第9页
第9页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第10页
第10页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第11页
第11页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第12页
第12页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第13页
第13页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第14页
第14页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第15页
第15页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第16页
第16页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第17页
第17页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第18页
第18页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第19页
第19页 / 共24页
JUnit单元测试覆盖率Word下载.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JUnit单元测试覆盖率Word下载.docx

《JUnit单元测试覆盖率Word下载.docx》由会员分享,可在线阅读,更多相关《JUnit单元测试覆盖率Word下载.docx(24页珍藏版)》请在冰点文库上搜索。

JUnit单元测试覆盖率Word下载.docx

 publicinterfaceIMoney{

  /**

  *Addsamoneytothismoney.

  */

  publicabstractIMoneyadd(IMoneym);

  *AddsasimpleMoneytothismoney.Thisisahelpermethodfor

  *implementingdoubledispatch

  publicabstractIMoneyaddMoney(Moneym);

  *AddsaMoneyBagtothismoney.Thisisahelpermethodfor

  publicabstractIMoneyaddMoneyBag(MoneyBags);

  *Testswhetherthismoneyiszero

  publicabstractbooleanisZero();

  *Multipliesamoneybythegivenfactor.

  publicabstractIMoneymultiply(intfactor);

  *Negatesthismoney.

  publicabstractIMoneynegate();

  *Subtractsamoneyfromthismoney.

  publicabstractIMoneysubtract(IMoneym);

  *AppendthistoaMoneyBagm.

  publicabstractvoidappendTo(MoneyBagm);

  }

这里我们定义一个java接口,表示了“金钱”这个神奇东西的一些美妙的抽象方法!

早年有首迟志强的歌叫《钞票》:

是谁制造的钞票,你在世上逞霸道,有人为你愁眉苦脸啊有人为你哈哈笑;

姑娘为你走错了路,小伙子为你受改造!

东奔又西跑,点头又哈腰,钞票!

人人为你离不了钱哪!

你这杀人不见血的刀…形象无比,不扯了,跑题啦!

Iamback!

之后我们实现这个接口,在src文件夹下定义一个叫做Money.java的类:

publicclassMoneyimplementsIMoney{

  privateintfAmount;

  privateStringfCurrency;

  *Constructsamoneyfromthegivenamountandcurrency.

  publicMoney(intamount,Stringcurrency){

  fAmount=amount;

  fCurrency=currency;

  *Addsamoneytothismoney.ForwardstherequesttotheaddMoneyhelper.

  publicIMoneyadd(IMoneym){

  returnm.addMoney(this);

  publicIMoneyaddMoney(Moneym){

  if(m.currency().equals(currency()))

  returnnewMoney(amount()+m.amount(),currency());

  returnMoneyBag.create(this,m);

  publicIMoneyaddMoneyBag(MoneyBags){

  returns.addMoney(this);

  publicintamount(){

  returnfAmount;

  publicStringcurrency(){

  returnfCurrency;

  publicbooleanequals(ObjectanObject){

  if(isZero())

  if(anObjectinstanceofIMoney)

  return((IMoney)anObject).isZero();

  if(anObjectinstanceofMoney){

  MoneyaMoney=(Money)anObject;

  returnaMoney.currency().equals(currency())

  &

&

amount()==aMoney.amount();

  returnfalse;

  publicinthashCode(){

  returnfCurrency.hashCode()+fAmount;

  publicbooleanisZero(){

  returnamount()==0;

  publicIMoneymultiply(intfactor){

  returnnewMoney(amount()*factor,currency());

  publicIMoneynegate(){

  returnnewMoney(-amount(),currency());

  publicIMoneysubtract(IMoneym){

  returnadd(m.negate());

  publicStringtoString(){

  StringBufferbuffer=newStringBuffer();

  buffer.append("

["

+amount()+"

"

+currency()+"

]"

);

  returnbuffer.toString();

  public/*thismakesnosense*/voidappendTo(MoneyBagm){

  m.appendMoney(this);

这个接口实现了IMoney接口的方法,具体语法就不讲了,很简单!

之后,我们又用另一个类实现IMoney接口,为什么呢?

你可以认为我贪心,但你不可以这么说,因为喜欢编程的人绝对不是为了贪婪代码!

我们在src下建立另一个类MoneyBag.java:

importjava.util.*;

  classMoneyBagimplementsIMoney{

  privateVectorfMonies=newVector(5);

  staticIMoneycreate(IMoneym1,IMoneym2){

  MoneyBagresult=newMoneyBag();

  m1.appendTo(result);

  m2.appendTo(result);

  returnresult.simplify();

  returnm.addMoneyBag(this);

  returnMoneyBag.create(m,this);

  returnMoneyBag.create(s,this);

  voidappendBag(MoneyBagaBag){

  for(Enumeratione=aBag.fMonies.elements();

e.hasMoreElements();

  appendMoney((Money)e.nextElement());

  voidappendMoney(MoneyaMoney){

  if(aMoney.isZero())return;

  IMoneyold=findMoney(aMoney.currency());

  if(old==null){

  fMonies.addElement(aMoney);

  return;

  fMonies.removeElement(old);

  IMoneysum=old.add(aMoney);

  if(sum.isZero())

  fMonies.addElement(sum);

  if(anObjectinstanceofMoneyBag){

  MoneyBagaMoneyBag=(MoneyBag)anObject;

  if(aMoneyBag.fMonies.size()!

=fMonies.size())

  for(Enumeratione=fMonies.elements();

){

  Moneym=(Money)e.nextElement();

  if(!

aMoneyBag.contains(m))

  returntrue;

  privateMoneyfindMoney(Stringcurrency){

  if(m.currency().equals(currency))

  returnm;

  returnnull;

  privatebooleancontains(Moneym){

  Moneyfound=findMoney(m.currency());

  if(found==null)returnfalse;

  returnfound.amount()==m.amount();

  inthash=0;

  Objectm=e.nextElement();

  hash^=m.hashCode();

  returnhash;

  returnfMonies.size()==0;

  if(factor!

=0){

  result.appendMoney((Money)m.multiply(factor));

  returnresult;

  result.appendMoney((Money)m.negate());

  privateIMoneysimplify(){

  if(fMonies.size()==1)

  return(IMoney)fMonies.elements().nextElement();

  returnthis;

{"

  buffer.append(e.nextElement());

}"

  publicvoidappendTo(MoneyBagm){

  m.appendBag(this);

之后,我们创建一个junit测试代码MoneyTest.java,来测试Money.java和MoneyBag.java类,这里我也把它放在src目录下;

如果企业应用,你就要把目录分析的详细些,例如src子目录下放所有的java源代码,test子目录下放所有的junit测试代码:

 importjunit.framework.*;

  publicclassMoneyTestextendsTestCase{

  privateMoneyf12CHF;

  privateMoneyf14CHF;

  privateMoneyf7USD;

  privateMoneyf21USD;

  privateIMoneyfMB1;

  privateIMoneyfMB2;

  publicstaticvoidmain(Stringargs[]){

  junit.textui.TestRunner.run(MoneyTest.class);

  protectedvoidsetUp(){

  f12CHF=newMoney(12,"

CHF"

  f14CHF=newMoney(14,"

  f7USD=newMoney(7,"

USD"

  f21USD=newMoney(21,"

  fMB1=MoneyBag.create(f12CHF,f7USD);

  fMB2=MoneyBag.create(f14CHF,f21USD);

  publicvoidtestBagMultiply(){

  //{[12CHF][7USD]}*2=={[24CHF][14USD]}

  IMoneyexpected=MoneyBag.create(newMoney(24,"

),newMoney(14,"

));

  assertEquals(expected,fMB1.multiply

(2));

  assertEquals(fMB1,fMB1.multiply

(1));

  assertTrue(fMB1.multiply(0).isZero());

  publicvoidtestBagNegate(){

  //{[12CHF][7USD]}negate=={[-12CHF][-7USD]}

  IMoneyexpected=MoneyBag.create(newMoney(-12,"

),newMoney(-7,"

  assertEquals(expected,fMB1.negate());

  publicvoidtestBagSimpleAdd(){

  //{[12CHF][7USD]}+[14CHF]=={[26CHF][7USD]}

  IMoneyexpected=MoneyBag.create(newMoney(26,"

),newMoney(7,"

  assertEquals(expected,fMB1.add(f14CHF));

  publicvoidtestBagSubtract(){

  //{[12CHF][7USD]}-{[14CHF][21USD]=={[-2CHF][-14USD]}

  IMoneyexpected=MoneyBag.create(newMoney(-2,"

),newMoney(-14,"

  assertEquals(expected,fMB1.subtract(fMB2));

  publicvoidtestBagSumAdd(){

  //{[12CHF][7USD]}+{[14CHF][21USD]}=={[26CHF][28USD]}

),newMoney(28,"

  assertEquals(expected,fMB1.add(fMB2));

  publicvoidtestIsZero(){

  assertTrue(fMB1.subtract(fMB1).isZero());

  assertTrue(MoneyBag.create(newMoney(0,"

),newMoney(0,"

)).isZero());

  publicvoidtestMixedSimpleAdd(){

  //[12CHF]+[7USD]=={[12CHF][7USD]}

  IMoneyexpected=MoneyBag.create(f12CHF,f7USD);

  assertEquals(expected,f12CHF.add(f7USD));

  publicvoidtestBagNotEquals(){

  IMoneybag=MoneyBag.create(f12CHF,f7USD);

  assertFalse(bag.equals(newMoney(12,"

DEM"

).add(f7USD)));

  publicvoidtestMoneyBagEquals(){

  assertTrue(!

fMB1.equals(null));

  assertEquals(fMB1,fMB1);

  IMoneyequal=MoneyBag.create(newMoney(12,"

  assertTrue(fMB1.equals(equal));

fMB1.equals(f12CHF));

f12CHF.equals(fMB1));

fMB1.equals(fMB2));

  publicvoidtestMoneyBagHash(){

  assertEquals(fMB1.hashCode(),equal.hashCode());

  publicvoidtestMoneyEquals(){

f12CHF.equals(null));

  MoneyequalMoney=newM

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2