Spock is a testing framework written in Groovy that allows developers to write tests in a business readable domain specific language. It combines the benefits of specification-based testing and mock-based testing. Some key features of Spock include the ability to write feature methods with given, when, and then blocks; use fixtures for setup and cleanup; parameterize tests with data tables in where blocks; make assertions about interactions with mock objects; and write tests in a BDD style with descriptive language. Spock's tests are themselves a good source of documentation on how to write and use Spock tests.