TestNG - Erwarteter Ausnahmetest

TestNG - Erwarteter Ausnahmetest

In diesem Tutorial zeigen wir Ihnen, wie Sie mit TestNGexpectedExceptions die erwarteten Ausnahmefälle in Ihrem Code testen.

1. Laufzeitausnahme

Dieses Beispiel zeigt Ihnen, wie Sie eine Laufzeitausnahme testen. Wenn die MethodedivisionWithException () eine Laufzeitausnahme auslöst -ArithmeticException, wird diese übergeben.

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;
    }

}

Der obige Unit-Test wird bestanden.

2. Überprüfte Ausnahme

Überprüfen Sie ein einfaches Geschäftsobjekt, speichern und aktualisieren Sie die Methode und lösen Sie bei Fehlern benutzerdefinierte geprüfte Ausnahmen aus.

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");

  }
}

Beispiel zum Testen der erwarteten Ausnahme.

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);
  }

}

Der obige Unit-Test wird bestanden.

Quellcode herunterladen

Laden Sie es herunter -TestNG-Example-Excepted-Exception.zip (11 kb)