Minimise scenarios

Hi,

I have a number of scenarios that are virtually the same apart from
one piece of test data

Scenario: The user is returned search links with expected search
text description
Given a logged in xx user
When clicks ‘Advanced Search’
And enters ‘Aidy’ in the Contributors field
And clicks search
Then the resultant links are displayed with the search text in
each description

So, in the first clause of the When method, I would like to change the
string value.

Is there any way of doing this better than copying and pasting the
above Scenario with one different string value and re-running that
test?

Regards

Aidy

On Jun 16, 2008, at 6:27 AM, aidy lewis wrote:

And clicks search
Then the resultant links are displayed with the search text in
each description

So, in the first clause of the When method, I would like to change the
string value.

Is there any way of doing this better than copying and pasting the
above Scenario with one different string value and re-running that
test?

For now, no. There is an idea in the works. For right now, I would
merge some of those steps:

Scenario: display search links
Given I am logged in as David
When I do an Advanced Search for Contributors: ‘Aidy’
Then I should see blah de blah

That one When covers the three in the original example, and reads
quite naturally in the domain, no?

In the future you’ll be able to do something like this:

Scenario: display search links
Given I am logged in as David
When I do an Advanced Search for Contributors: ‘Aidy’
Then I should see blah de blah

More Examples:
|User |Query |Result |
|David |Contributors:‘David’ |RSpec |
|David |Contributors:‘Joe’ |this or that |

Not exactly sure how that’s going to look yet, but it’s basically a
FIT-inspired tabular input/output format with the columns bound to the
last Scenario. Coming soon to a workstation near you (but not too soon).

Cheers,
David

Cheers,
David

Thanks David,

Maybe my steps are too granular and I will link them up as suggested.

What I do like though is re-using steps in different domains.

So I can have

When “clicks ‘$link_text’” do | link_text |
browser.link(:text, Regexp.new(link_text)).click
end

When “clicks on ‘$button_value’ button” do | button_value|
browser.button(:value, button_value).click
end

Which will click any link and button, so I can say to a manual tester
and/or BA follow this step format and we have done a lot to actually
having the automated UI testing straight away. Obviously this will not
work on domain specific steps.

Aidy