TestNG - Test d’exception attendu

TestNG - Test d'exception attendue

Dans ce tutoriel, nous allons vous montrer comment utiliser les TestNGexpectedExceptions pour tester les levées d'exceptions attendues dans votre code.

1. Exception d'exécution

Cet exemple vous montre comment tester une exception d'exécution. Si la méthodedivisionWithException () lève une exception d'exécution -ArithmeticException, elle sera transmise.

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

}

Le test unitaire ci-dessus sera réussi.

2. Exception vérifiée

Passez en revue un objet métier simple, enregistrez et mettez à jour la méthode et lève des exceptions cochées personnalisées en cas d'erreur.

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

  }
}

Exemple pour tester l'exception attendue.

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

}

Le test unitaire ci-dessus sera réussi.

Télécharger le code source

Téléchargez-le -TestNG-Example-Excepted-Exception.zip (11 ko)