Spock Framework
Was ist Spock?
- Groovy Testing bzw. Specification Framework
- Intuitive und Ausdrucksstarke DSL
- Das beste von verschiedenen anderen Frameworks und Sprachen (z.B. JUnit, JMock, RSpec, Groovy, Scala, …)
Spock Specification
- Groovy Test-Klasse
- Abgeleitet von
spock.lang.Specification
- Besteht aus
- Fields
- Fixture-Methods
- 1 - n Feature-Methods
- ggf. Helper-Methods
Fields
- z.B. System under Specification (SUS)
- Werden standardmäßig für jede Feature-Method neu initialisiert
-
@Shared Annotation
Fixture-Methods
- Zum Herstellen von Ausgangszustand bzw. Bereinigen von Endzustand
- setup und cleanup - entspricht @Before und @After in JUnit
- setupSpec und cleanupSpec - entspricht @BeforeClass und @AfterClass in JUnit
Feature-Methods
- Eigentliche “Test”-Methoden
- Beschreiben Features
- Name = String-Literal (z.B.
def "Maximum von zwei nummerischen Werten"()
)
Vier Phasen
- Setup Fixture
- Stimulus
- Expected Response
- Cleanup Fixture
Blocks
- Definition der Phasen
- setup oder given
- Setup fixture
- beliebiger Code
- when
- then
- expected response
- boolean conditions (ohne assert)
- expect
- expected response für funktionale Methoden
- boolean conditions
- cleanup
- where
- für data-driven feature methods
- zur Definition von Data-Tables
Helper-Methods
- z.B. extrahieren von komplexen Conditions
Links
Code-Beispiel
Torsten Mandry
Software Craftsman, Architekt, Clean Coder, API-Fetischist, Politik-Allergiker