See example gist for illustration of a multiple where block use case:
https://gist.github.com/cathalking/76fd9ad59a38b6910f03
Discussed at: https://groups.google.com/forum/#!topic/spockframework/yQPPjpf9spE
The specific usage I have in mind for this enhancement is related to:
(a) Enhancing readability of especially "wide" where blocks e.g. imagine my
example where block below, but with another few columns added. It will quickly
disappear off the screen. By allowing multiple where blocks
(b) Supporting the notion of having separate where "input" and "expectation"
blocks. Again primarily to enhance readability when both the number of inputs
and number of expected values is high. Or simply an extra option rather than
using double pipe || (which is an elegant feature for small blocks)
(c) Gherkin/Cucumber supports the notion of separate data tables e.g one for
Given, one for When. Which to my mind is a good and useful thing. But then
AFAIK you are forced to process the entire table in a single pass. I'm not so
keen on that. Spock thankfully "feeds" the table/where-block in row-by-row.
Adding additional where blocks would emulate the separate data table feature
whilst maintaining the desired row-by-row flow.
where: 'Login inputs + Expected Login greetings are:'
login | password || expectedFullName | expectedLastSeen |
expectedRepPoints
'ra...@email.com' | '123' || 'Ralph Malph' | '20130619' | '15'
'pot...@email.com' | '234' || 'Potsie Webber' | '20130617' | '19'
'ric...@email.org' | '456' || 'Richie Cunningham' | '20130613' | '21'
Proposed multiple where block layout:
// With a "multiple" *where* block approach the single block is essentially
broken up (an arbitrary number of times
// where: 'Login inputs'
// login | password
// 'ra...@email.com' | '123'
// 'pot...@email.com' | '234'
// 'ric...@email.org' | '456'
//
// where: 'Expected Login greetings'
// expectedFullName | expectedLastSeen | expectedRepPoints
// 'Ralph Malph' | '20130619' | '15'
// 'Potsie Webber' | '20130617' | '19'
// 'Richie Cunningham' | '20130613' | '21'
Original issue reported on code.google.com by cathalki...@gmail.com on 14 Jul 2013 at 8:07
Original issue reported on code.google.com by
cathalki...@gmail.com
on 14 Jul 2013 at 8:07