Package spock.lang
Class Specification
java.lang.Object
org.spockframework.lang.SpecInternals
spock.lang.MockingApi
spock.lang.Specification
Base class for Spock specifications. All specifications must inherit from
this class, either directly or indirectly.
- Author:
- Peter Niederwieser
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidSpecifies that no exception should be thrown, failing with aUnallowedExceptionThrownErrorotherwise.voidSpecifies that no exception of the given type should be thrown, failing with aUnallowedExceptionThrownErrorotherwise.<T> Told(T expression) Used in a then-block to access an expression's value at the time just before the previous where-block was entered.<T extends Throwable>
Tthrown()Specifies that the preceding when block should throw an exception.<T extends Throwable>
TSpecifies that the preceding when block should throw an exception of the given type.voidSets the specified object as the implicit target of the top-level conditions and/or interactions contained in the specified code block, thereby avoiding the need to repeat the same expression multiple times.voidSame aswith(Object, groovy.lang.Closure), except that it also states that the specified target has the specified type, throwing aSpockAssertionErrorotherwise.Methods inherited from class spock.lang.MockingApi
GroovyMock, GroovyMock, GroovyMock, GroovyMock, GroovyMock, GroovyMock, GroovyMock, GroovyMock, GroovySpy, GroovySpy, GroovySpy, GroovySpy, GroovySpy, GroovySpy, GroovySpy, GroovySpy, GroovyStub, GroovyStub, GroovyStub, GroovyStub, GroovyStub, GroovyStub, GroovyStub, GroovyStub, interaction, Mock, Mock, Mock, Mock, Mock, Mock, Mock, Mock, Spy, Spy, Spy, Spy, Spy, Spy, Spy, Spy, Stub, Stub, Stub, Stub, Stub, Stub, Stub, StubMethods inherited from class org.spockframework.lang.SpecInternals
createMock, getSpecificationContext
-
Field Details
-
_
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
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
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
Specifies that no exception of the given type should be thrown, failing with aUnallowedExceptionThrownErrorotherwise.- Parameters:
type- the exception type that should not be thrown
-
noExceptionThrown
public void noExceptionThrown()Specifies that no exception should be thrown, failing with aUnallowedExceptionThrownErrorotherwise. -
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
Sets the specified object as the implicit target of the top-level conditions and/or interactions contained in the specified code block, thereby avoiding the need to repeat the same expression multiple times. Implicit conditions are supported. (In other words, theassertkeyword may be omitted.) If the target isnull, aSpockAssertionErroris thrown.A
withblock can be used anywhere in a spec, including nested positions and helper methods.Condition example:
def fred = new Person(name: "Fred", age: 42) def spaceship = new Spaceship(pilot: fred) expect: with(spaceship.pilot) { name == "Fred" // shorthand for: spaceship.pilot.name == "Fred" age == 42 }Interaction example:
def service = Mock(Service) // has start(), stop(), and doWork() methods def app = new Application(service) // controls the lifecycle of the service when: app.run() then: with(service) { 1 * start() // shorthand for: 1 * service.start() 1 * doWork() 1 * stop() }- Parameters:
target- an implicit target for conditions and/or interactionsclosure- a code block containing top-level conditions and/or interactions
-
with
Same aswith(Object, groovy.lang.Closure), except that it also states that the specified target has the specified type, throwing aSpockAssertionErrorotherwise. As a side effect, this may give better code completion in IDEs.Example:
def fred = new Employee(name: "Fred", age: 42, employer: "MarsTravelUnited") def spaceship = new Spaceship(pilot: fred) expect: with(spaceship.pilot, Employee) { name == "Fred" // shorthand for: spaceship.pilot.name == "Fred" age == 42 employer == "MarsTravelUnited" }- Parameters:
target- an implicit target for conditions and/or interactionstype- the expected type of the targetclosure- a code block containing top-level conditions and/or interactions
-