2013-04-21 4 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 Сергея Березовского

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 
    } 
Смежные вопросы