2013-04-21 52 views
0

我想添加一個對象在數據庫中比檢查對象是否已經存在,所以我們不能添加它兩次。我用JUnit來測試它:預計異常JUNIT

@org.junit.Test (expected = ExistingProduct.class) 
public void AddExisting() 
{ 

    Register aRegister = new Register(); 
    Product aProduct = new Product(); 
    aProduct.setPIN("079400027252"); 

    aRegister.AddProduct(aProduct); 


    Product sameProduct = new Product(); 
    sameProduct.setPIN("079400027252"); 

    aRegister.AddProduct(sameProduct); //this throw the exception 


    aRegister.deleteProduct("079400027252"); //CAN'T REACH HERE 
} 

的問題是,我不能刪除產品因爲這是之前調用會拋出一個異常從而結束測試的指令。

回答

0

嗯,我有點想出了一些東西...... 我稱之爲@Before方法巫婆從BD刪除所有與放回默認值

0

也許是這樣解決這個問題。 更多的是https://stackoverflow.com/a/20494165/4296891通過Sergey Berezovskiy

public void AddExisting() 
    { 

     Register aRegister = new Register(); 
     Product aProduct = new Product(); 
     aProduct.setPIN("079400027252"); 

     aRegister.AddProduct(aProduct); 


     Product sameProduct = new Product(); 
     sameProduct.setPIN("079400027252"); 
     try 
     { 
      aRegister.AddProduct(sameProduct); //this throw the exception 
      assertEquals("Can't add it twice exception has been excepted." ,true, false); 
     } 
     catch(ExistingProduct exception) 
     {   
      // exception 
     } 

     aRegister.deleteProduct("079400027252"); //CAN'T REACH HERE 
    }