I gave a presentation on Spock a very nice BDD framework in Groovy a few months back to our Groovy Users Group in Sacramento. After using it on a real world Grails project the last few months it has grown on me to become my go to testing framework for Groovy/Grails or Java projects. A typical specification looks something like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def "a pager should calculate total pages, current page, and offset"() { when: "count, rows and page number" def pager = new Pager(count, rows, page) then: "should return correct total pages, the current page, and the offset" pager.totalPages == totalPages pager.currentPage == currentPage pager.offset == offset where: "you have a number of different scenarios" count | rows | page | totalPages | currentPage | offset 100 | 10 | 1 | 10 | 1 | 0 950 | 100 | 5 | 10 | 5 | 400 72 | 20 | 3 | 4 | 3 | 40 } |
If that passed your 5 second test take a look at a fuller introductory tutorial I put together.
A Gentle Introduction to Spock
And if you want to try out executing real code the project has a nice browser based environment at Meet Spock.