TestNG - тест ожидаемого исключения
В этом руководстве мы покажем вам, как использовать TestNGexpectedExceptions
для проверки ожидаемых выбросов исключения в вашем коде.
1. Исключение во время выполнения
В этом примере показано, как протестировать исключение времени выполнения. Если методdivisionWithException ()
вызывает исключение времени выполнения -ArithmeticException
, оно будет передано.
TestRuntime.java
package com.example.testng.examples.exception; import org.testng.annotations.Test; public class TestRuntime { @Test(expectedExceptions = ArithmeticException.class) public void divisionWithException() { int i = 1 / 0; } }
Вышеупомянутый модульный тест будет пройден.
2. Проверено исключение
Просмотрите простой бизнес-объект, метод сохранения и обновления и в случае ошибки выдает проверенные пользователем исключения.
OrderBo.java
package com.example.testng.project.order; public class OrderBo { public void save(Order order) throws OrderSaveException { if (order == null) { throw new OrderSaveException("Order is empty!"); } // persist it } public void update(Order order) throws OrderUpdateException, OrderNotFoundException { if (order == null) { throw new OrderUpdateException("Order is empty!"); } // If order is not available in the database throw new OrderNotFoundException("Order is not exists"); } }
Пример проверки ожидаемого исключения.
TestCheckedException.java
package com.example.testng.examples.exception; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import com.example.testng.project.order.Order; import com.example.testng.project.order.OrderBo; import com.example.testng.project.order.OrderNotFoundException; import com.example.testng.project.order.OrderSaveException; import com.example.testng.project.order.OrderUpdateException; public class TestCheckedException { OrderBo orderBo; Order data; @BeforeTest void setup() { orderBo = new OrderBo(); data = new Order(); data.setId(1); data.setCreatedBy("example"); } @Test(expectedExceptions = OrderSaveException.class) public void throwIfOrderIsNull() throws OrderSaveException { orderBo.save(null); } /* * Example : Multiple expected exceptions * Test is success if either of the exception is thrown */ @Test(expectedExceptions = { OrderUpdateException.class, OrderNotFoundException.class }) public void throwIfOrderIsNotExists() throws OrderUpdateException, OrderNotFoundException { orderBo.update(data); } }
Вышеупомянутый модульный тест будет пройден.
Скачать исходный код
Скачать -TestNG-Example-Excepted-Exception.zip (11 кб)