Package spock.lang

Class Specification


public abstract class Specification extends MockingApi
Base class for Spock specifications. All specifications must inherit from this class, either directly or indirectly.
Author:
Peter Niederwieser
  • Field Details

    • _

      public static final Object _
      The wildcard symbol. Used in several places as a don't care value:
      • Mock interactions
      • Example: 1 * foo.bar(_)
      • Data parameterizations
      • Example: [foo, _] << loadDataFromDb()
  • Constructor Details

    • Specification

      public Specification()
  • Method Details

    • thrown

      public <T extends Throwable> T thrown()
      Specifies that the preceding when block should throw an exception. May only occur as the initializer expression of a typed variable declaration in a then block; the expected exception type is inferred from the variable type.

      This form of exception condition is typically used if the thrown exception instance is used in subsequent conditions.

      Example:

       when:
       "".charAt(0)
      
       then:
       IndexOutOfBoundsException e = thrown()
       e.message.contains(...)
       
      Returns:
      the thrown exception instance
    • thrown

      public <T extends Throwable> T thrown(Class<T> type)
      Specifies that the preceding when block should throw an exception of the given type. May only occur in a then block.

      This form of exception condition is typically used if the thrown exception instance is not used in subsequent conditions.

      Example:

       when:
       "".charAt(0)
      
       then:
       thrown(IndexOutOfBoundsException)
      Type Parameters:
      T - the expected exception type
      Parameters:
      type - the expected exception type
      Returns:
      the thrown exception instance
    • notThrown

      public void notThrown(Class<? extends Throwable> type)
      Specifies that no exception of the given type should be thrown, failing with a UnallowedExceptionThrownError otherwise.
      Parameters:
      type - the exception type that should not be thrown
    • noExceptionThrown

      public void noExceptionThrown()
      Specifies that no exception should be thrown, failing with a UnallowedExceptionThrownError otherwise.
    • old

      public <T> T old(T expression)
      Used in a then-block to access an expression's value at the time just before the previous where-block was entered.
      Type Parameters:
      T - the expression's type
      Parameters:
      expression - an arbitrary expression, except that it may not reference variables defined in the then-block
      Returns:
      the expression's value at the time the previous where-block was entered
    • with

      @Beta public void with(Object object, groovy.lang.Closure closure)