您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
notyy的junit教程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/7 15:37:57 ] 推薦標(biāo)簽:

  Test a little ,code a little ,實(shí)戰(zhàn)junit
  
  Notyy的junit教程(一)
  
  有了junit,java程序的單元測(cè)試變成非常簡(jiǎn)單的事。而在寫(xiě)代碼前先寫(xiě)測(cè)試這個(gè)似乎不可思議的規(guī)定也變的十分合理而且能有效的幫助程序的設(shè)計(jì)。
  
  下面是一個(gè)aclearcase/" target="_blank" >ccountbean的例子,假設(shè)我們要實(shí)現(xiàn)一個(gè)帳戶(hù)管理程序,能夠向帳戶(hù)中增加、減少金額,還能在帳戶(hù)間轉(zhuǎn)帳。很顯然需要有一個(gè)account類(lèi),且慢寫(xiě)代碼!在寫(xiě)代碼前先寫(xiě)測(cè)試,測(cè)試如何寫(xiě)?假設(shè)你已經(jīng)有這個(gè)account類(lèi),你希望如何使用它?顯然首先要初始化它,一個(gè)帳戶(hù)應(yīng)該知道他的擁有者,和他現(xiàn)有的金額,那么他應(yīng)該有個(gè)構(gòu)建器形如:
  
  account(String Owner,double Balance);那先寫(xiě)測(cè)試這個(gè)構(gòu)建器的代碼,如下:
  
  package account;
  
  
  
  import junit.framework.TestCase;
  
  
  
  public class AccountTest extends TestCase {
  
  private Account AccountA;
  
  private Account AccountB;
  
  public AccountTest(String name) {
  
  super(name);
  
  }
  
  public static void main(String args[]) {
  
  junit.textui.TestRunner.run(AccountTest.class);
  
  }
  
  public void testAccount(){
  
  AccountA=new Account("notyy",100);
  
  AccountB=new Account("bricks",200);
  
  assertEquals("notyy",AccountA.Owner);
  
  assertEquals(100,AccountA.Balance,2);
  
  assertEquals("bricks",AccountB.Owner);
  
  assertEquals(200,AccountB.Balance,2);
  
  }
  
  }這段代碼無(wú)法編譯,因?yàn)闆](méi)有account類(lèi),我們來(lái)為account類(lèi)寫(xiě)個(gè)骨架,使他能夠編譯。代碼如下:
  
  package account;
  
  
  
  public class Account {
  
  private String Owner;
  
  private double Balance;
  
  public Account(String aOwner,double aBalance) {
  
  }
  
  }
  
  編譯后,寫(xiě)個(gè)批命令來(lái)運(yùn)行測(cè)試程序,如下:
  
  test.bat
  
  java -cp %classpath%;d:javaprjaccountclasses account.AccountTest
  
  別忘了把junit.jar包含在你的classpath里,junit的配置這里不再多說(shuō)。
  
  運(yùn)行test.bat得到如下結(jié)果
  
  FAILURES!!!
  
  Test Results:
  
  Run:1 Failure :1 Errors:0
  
  There was 1 failure
  
  1) testAccount(account.AccountTest) “expected . but was ”
  
  感覺(jué)如何,測(cè)試程序得出了我們預(yù)料的結(jié)果,因?yàn)闃?gòu)建器還沒(méi)有實(shí)現(xiàn)呢!
  
  現(xiàn)在我們來(lái)實(shí)現(xiàn)構(gòu)建器
  
  public Account(String aOwner,double aBalance) {
  
  Owner=aOwner;
  
  Balance=aBalance;
  
  }

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd