Class TestTransaction

java.lang.Object
org.springframework.test.context.transaction.TestTransaction

public final class TestTransaction extends Object
TestTransaction provides a collection of static utility methods for programmatic interaction with test-managed transactions within test methods, before methods, and after methods.

Consult the javadocs for TransactionalTestExecutionListener for a detailed explanation of test-managed transactions.

Support for TestTransaction is automatically available whenever the TransactionalTestExecutionListener is enabled. Note that the TransactionalTestExecutionListener is typically enabled by default, but it can also be manually enabled via the @TestExecutionListeners annotation.

Since:
4.1
Author:
Sam Brannen
See Also:
  • Method Details

    • isActive

      public static boolean isActive()
      Determine whether a test-managed transaction is currently active.
      Returns:
      true if a test-managed transaction is currently active
      See Also:
    • isFlaggedForRollback

      public static boolean isFlaggedForRollback()
      Determine whether the current test-managed transaction has been flagged for rollback or flagged for commit.
      Returns:
      true if the current test-managed transaction is flagged to be rolled back; false if the current test-managed transaction is flagged to be committed
      Throws:
      IllegalStateException - if a transaction is not active for the current test
      See Also:
    • flagForRollback

      public static void flagForRollback()
      Flag the current test-managed transaction for rollback.

      Invoking this method will not end the current transaction. Rather, the value of this flag will be used to determine whether the current test-managed transaction should be rolled back or committed once it is ended.

      Throws:
      IllegalStateException - if no transaction is active for the current test
      See Also:
    • flagForCommit

      public static void flagForCommit()
      Flag the current test-managed transaction for commit.

      Invoking this method will not end the current transaction. Rather, the value of this flag will be used to determine whether the current test-managed transaction should be rolled back or committed once it is ended.

      Throws:
      IllegalStateException - if no transaction is active for the current test
      See Also:
    • start

      public static void start()
      Start a new test-managed transaction.

      Only call this method if end() has been called or if no transaction has been previously started.

      Throws:
      IllegalStateException - if the transaction context could not be retrieved or if a transaction is already active for the current test
      See Also:
    • end

      public static void end()
      Immediately force a commit or rollback of the current test-managed transaction, according to the rollback flag.
      Throws:
      IllegalStateException - if the transaction context could not be retrieved or if a transaction is not active for the current test
      See Also: