Here is the same thing as a gist http://gist.github.com/99443
2009/4/22 Nigel Thorne <rs...@nigelthorne.com>

> I would prefer it to be explicit what columns I am using, that way if you
> have two steps that require this technique in your scenario it still 
> works.Relying
> on an implicit 'the rest' doesn't work in that situation.
> In my scenario I would like to have something like this..
>
> Given I am logged in as <Role>
> And I have a Protocol <Initial Protocol Details>
> When I clone the protocol
> Then the new protocol will contain <Cloned Protocol Details>
>
>
> Examples:
>
> *| Role | Initial Protocol Details   ||| Cloned Protocol Details             
> |||
>
> *|      | Name  | Urgent | Description | Name   | Urgent | Description        
>  |
>
>  | Admin| Prot1 | Y      | Protocol 1  | Prot~1 |  Y     | Clone of Protocol 
> 1 |
>
>  | Admin| Prot1 | N      | Protocol 1  | Prot~1 |  N     | Clone of Protocol 
> 1 |
>
> etc.
>
>
> Here I am using ||| to signify the number of columns that are included in
> the above grouping. Not sure how best to indicate which rows are header
> rows.
>
> WDYT?
>
>
> 2009/4/22 Ben Mabey <b...@benmabey.com>
>
> aslak hellesoy wrote:
>>
>>>
>>>
>>> On Tue, Apr 21, 2009 at 10:20 PM, Joseph Wilk <j...@josephwilk.net<mailto:
>>> j...@josephwilk.net>> wrote:
>>>
>>>    On Tue, Apr 21, 2009 at 7:32 PM, Jonathan Linowes
>>>    <jonat...@parkerhill.com <mailto:jonat...@parkerhill.com>> wrote:
>>>    >
>>>    > On Apr 21, 2009, at 1:57 PM, Joseph Wilk wrote:
>>>    >
>>>    >> What you really want is an examples table that is embedded in a
>>>    step
>>>    >> (different from a step table, maybe by keyword?) that causes
>>>    the step to be
>>>    >> run multiple times for each of the values. So rather than using
>>>    placeholders
>>>    >> we embedded a Examples table in the step.
>>>    >
>>>    >
>>>    > like this?
>>>
>>>    Not quite, I was thinking of running the whole scenario for the
>>>    examples step table rather than just the step.
>>>
>>>    However I really like Ben's suggestion of a sub-table
>>>    (http://gist.github.com/99255).
>>>
>>>    I think it would be conceptually easier for a non-technical user to
>>>    grasp than my first suggestion which makes it a big win for me.
>>>
>>>
>>> Thanks a lot for all the suggestions so far. I like Ben's subtable too.
>>> In the example: "I should be presented a menu with <Meat Options>" I
>>> assume the step definition would be:
>>>
>>> Then /I should be presented a menu with/ do |meat_hash|
>>>  # meat_hash has the following value the 2nd time (Jewish):
>>>  {'Pork'=>'N', 'Lamb'=>'Y', 'Veal'=>'Y'}
>>> end
>>>
>>> However, having the <Meat Options> as part of the step would be
>>> inconsistent with how the regexp matching is currently working.
>>>
>>> Here is an alternative: http://gist.github.com/99376
>>>
>>> The idea is that we add a new kind of multiline argument in addition to
>>> pystrings and tables: Hash. This is
>>> done using the familiar <> delimiters as a multiline argument. What's
>>> inside it has no significance other than documentation.
>>> The keys of the hash would be the same as the Examples table header
>>> *minus* the columns that are referred in other steps.
>>>
>>> In essence it achieves the same as Ben's, but relying on a convention
>>> (removing referenced columns) rather than introducing
>>> a new, more complex table markup.
>>>
>>> WDYT?
>>>
>>
>> Interesting.. so your meat_hash was derived from the columns of the table
>> that were not used previously in the scenario?  Meaning, that is why
>> Religion was not part of your meat_hash.
>>
>> That makes sense, and.. since the scenario outline is parsed before any of
>> the examples are ran through that convention could be maintained no matter
>> what order the delimiters appear in the scenario. (Just thinking out loud
>> here...)
>>
>> Yeah,  I like it. I also agree with Matt about meat_hash.  All this
>> meat_hash talk is making me hungry...
>>
>> However, what if people wanted multiple hashes?  Subtables would allow for
>> this but a single hash solution would not.  FWIW, here is a very contrived
>> exampled:
>>
>> http://gist.github.com/99424
>>
>> I agree that the sub-table is probably adding too much complexity,
>> especially since we have a simpler alternative and no real use cases for it
>> yet.  Basically, you can ignore that last gist, I was just experimenting
>> with contrived use cases. :)
>>
>>
>> -Ben
>>
>>
>>
>>> Aslak
>>>
>>>
>>>    --
>>>    Joseph Wilk
>>>    http://blog.josephwilk.net
>>>
>>>    >
>>>
>>> https://rspec.lighthouseapp.com/projects/16211/tickets/149-step-outline
>>>    >
>>>    > _______________________________________________
>>>    > rspec-users mailing list
>>>    > rspec-users@rubyforge.org <mailto:rspec-users@rubyforge.org>
>>>    > http://rubyforge.org/mailman/listinfo/rspec-users
>>>    >
>>>    _______________________________________________
>>>    rspec-users mailing list
>>>    rspec-users@rubyforge.org <mailto:rspec-users@rubyforge.org>
>>>    http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> rspec-users mailing list
>>> rspec-users@rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>
>
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to