您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
notyy的junit教程
作者:网络转载 发布时间:[ 2013/1/7 15:37:57 ] 推荐标签:

  
  先写test
  
  public void testDiscount(){
  
  AccountA=new Account("notyy",100);
  
  AccountB=new Account("bricks",200);
  
  AccountA.discount(50);
  
  //100-50=50
  
  assertEquals(50.00,AccountA.getBalance(),2);
  
  AccountB.discount(120);
  
  //200-120=80
  
  assertEquals(80,AccountB.getBalance(),2);
  
  }
  
  然后实现
  
  public void discount(double aMoney){
  
  Balance-=aMoney;
  
  }
  
  后是转帐功能,转帐是从一个帐户转到另一个帐户。其实是调用一个帐户的增加功能和另一个帐户的减少功能。
  
  每个测试里都要建立accountA和accountB是不是很烦,junit考虑到了这一点,所以可以覆盖testcase的setUp方法,在该方法内建立一些所有test都要用到的变量等。
  
  public void setUp(){
  
  AccountA=new Account("notyy",100);
  
  AccountB=new Account("bricks",200);
  
  }
  
  这样,所有的测试方法中都不用再建立这两个实例了。:)
  
  好,写转帐方法的测试
  
  public void testTransfer(){
  
  AccountA.transfer(AccountB,80.00);
  
  //100-80=20
  
  //200+80=280
  
  assertEquals(20.00,AccountA.getBalance(),2);
  
  assertEquals(280.00,AccountB.getBalance(),2);
  
  }
  
  然后建立transfer方法的框架,使它能编译:
  
  public void transfer(Account aAccount,double aBalance){}
  
  测试时报失败,expected “20” but was “100”
  
  然后填入实现 :
  
  public void transfer(Account aAccount,double aBalance){
  
  this.discount(aBalance);
  
  aAccount.credit(aBalance);
  
  }
  
  test OK!
  
  简单的步骤,却可使你对你实现的方法的正确性确信无疑,而且写测试的过程也是设计的过程,如果在写一个方法前,你连应该得到的输出都想不明白,又怎么能动手去写呢?
  
  谁说XP只要code,不要设计呢? :)
  
  好了,junit单元测试的第一个例子写到这吧。很简单吧?

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd