Cristiano,

Good stuff! Thanks.

Enfred

> Date: Thu, 2 Dec 2010 18:11:07 -0300
> From: [email protected]
> To: [email protected]
> Subject: Re: [jbehave-user] re: handling multiple fields in Parametrised 
> Scenarios
> 
> Hi,
> 
> I had this kind of subject once in some project where I needed to test 
> web forms (CRUD).
> 
> Firstly I've tried to create only one story and one scenario for the 
> entire user interface and put all the input data possibilities as 
> example tables. (as you did)...
> 
> It get worst when I had to write the "THEN" steps... I had to put both 
> input and output on same row of the example table... more that 30 fields 
> on table !!
> 
> It get worst when I had to remember WHAT was being tested with that 
> combination of fields on that row of data !! :-(
> 
> So, my stories got unreadable for the business clients and got 
> unpractical to continue using example table like this.
> 
> The problem IMO, was that I was thinking more in reuse things (test 
> classes and user interfaces) than in the business scenario itself. :-s
> 
> So I decide to use some different approach...:
> 
> I've created one story for the UI crud and later lots of meaningfull 
> scenarios for it. one example could be:
> 
> Story: Creating bank account for customer
> 
> GivenStories: Config Metadata for Customer Interface !- as I need to 
> test interfaces, I need to inject fields names, types on steps classes...
> 
> Scenario: Employee should create an new customer and account
> Meta:
> @type  Normal Process
> Given that user is Authenticated
> And user is on New Account page !- here your steps could get all the 
> names of field of your interface
> When user enters the following Customer data:
> |name|address|birthday|
> |John Public| X street 300|16/01/1980|
> And user enters the following Account data:
> |type|initial deposit|
> |investiment| 300000|
> Then system should process, create the account and show this info:
> |Resume|NextProcessStep|
> |Ok| Thanks the customer|
> 
> Scenario: Customer needs have at least 18years
> Meta:
> @type  BusinessRule
> 
> Given that user is Authenticated
> And user is on New Account page
> When user enters the following Customer data:
> |name|address|birthday|
> |Lady Kat| X street 300|16/01/1998|
> And user enters the following Account data:
> |type|initial deposit|
> |saving| 1000|
> Then system should process, do not create the account and show this info:
> |Resume|NextProcessStep|
> |NotOk - Customer is younger than needed. | Ask for the customer parents|
> 
> Well, some could say that I've writed much more, but I think I've gained 
> in readability. And my large reuse was concentrated only on the steps 
> classes. There you could use guice, pico or spring to help you fullfill 
> any info you wanted (as the interface meta data setted) from any source, 
> and could use any framework to test the UI. In my case, I've used selenium.
> 
> I've created steps like this:
> 
> @Given(user enters the following $entityName data: $entityDataTable")
> public void theTraders(String entityName, ExamplesTable entityDataTable) {
>      Page mypage = bringMeThePage(entityName);
>      boolean result = mypage.fillPage(entityDataTable);
> }
> 
> Inside fillPage() method I've used outcome tables to register each field 
> interaction (
> http://jbehave.org/reference/stable/outcomes-table.html).
> 
> 
> well, hope I had help.
> 
> cheers
> 
> Cristiano
> 
> On 02/12/10 14:56, Entfred wrote:
> > Hello,
> >
> > I am curious if anyone has tried to do something like this:
> >
> > Suppose you have
> >
> > |fieldValue|field|
> > |John Public|name|
> > |Bob Smith|name|
> > |Sarah Pallen|name|
> > |Mr. Bill|name|
> >
> > You would process your story with a line like this in your java:
> >
> > @When("I type<fieldValue>  into \"<field>\"")
> >
> > This would correspond to the step
> >
> > When I type<fieldValue>  into name
> >
> > This means, your story would run each line in the script four times -
> > one time for John Public, one time for Bob Smith.... one time for Mr. Bill.
> >
> > Now, suppose you want to process multiple fields for each line?
> > If you tried the following, it would not work, since you would overwrite
> > your variables:
> >
> > |fieldValue|field|fieldValue|field|
> > |John Public|name|50000.00|salary|
> > |Bob Smith|name|10000.00|salary|
> > |Sarah Pallen|name|999999.99|salary|
> > |Mr. Bill|name|10.54|salary
> >
> > You could try and modify this to have
> >
> > |fieldValue|field|fieldValue2|field2|
> > |John Public|name|50000.00|salary|
> > |Bob Smith|name|10000.00|salary|
> > |Sarah Pallen|name|999999.99|salary|
> > |Mr. Bill|name|10.54|salary
> >
> > But, this is starting to get messy, since you would then need
> >
> > @When("I type<fieldValue>  into \"<field>\"")
> >
> > in one method and
> >
> > @When("I type<fieldValue2>  into \"<field2>\"")
> >
> > Has anyone run into this problem, before?
> > Thanks for any advice on this.
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe from this list, please visit:
> >
> >      http://xircles.codehaus.org/manage_email
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 
> 
                                          

Reply via email to