<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Introducing DSL Adapter for Generic Fixture</title>
	<atom:link href="http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/feed/" rel="self" type="application/rss+xml" />
	<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/</link>
	<description>Generic Fixture, just a better FitNesse Fixture</description>
	<lastBuildDate>Wed, 28 Oct 2009 16:34:13 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Aristotelis</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-78</link>
		<dc:creator>Aristotelis</dc:creator>
		<pubDate>Tue, 28 Jul 2009 01:24:02 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-78</guid>
		<description>Dear Anubhava,

I understand that you have not replied to the previous message and I would not like to insist on issues that may require great effort to implement or that simply are not within the strategy of the Generic Fixture, but I have another suggestion that I believe can bring huge advantages.

Would you consider enabling the DSL to construct &#039;groups of actions&#039;? DSL defined &#039;multi-commands&#039;, which would be just like any other, however these would execute a series of calls instead of just one.

The way to implement it and the actual syntax could take many forms, here is a (silly) example:

!&#124; DSL Adapter &#124; 
&#124; open browser, go to url &#124; % &#124; and fetch the title &#124; StartMultiCommand &#124; {1} &#124;
&#124; user starts the browser &#124; start &#124; &#124;
&#124; user opens the URL &#124; % &#124; open &#124; {1} &#124;
&#124; retValue=page has the title &#124; getTitle &#124; &#124;
&#124; EndMultiCommand &#124; retValue= &#124;

Notice that though one can pass many variables to it, it only returns one result (retValue=)

This could be invoked by the following:

!&#124; Generic Fixture &#124; selenium= &#124;
&#124; open browser, go to url &#124; http://www.google.com &#124; and fetch the title &#124;  &#124; Google &#124;

and if the previous post is also accepted, then the first line (defining selenium as the object) can be hidden in the DSL definitions of the individual commands and hence leaving for the test narrative only the second line:

&#124; open browser, go to url &#124; http://www.google.com &#124; and fetch the title &#124;  &#124; Google &#124;

Obviously much better examples can be easily thought of, but I think that the benefit is more than obvious: achieving a light-weight, natural-language, executable test narrative that can be easily implemented and maintained, practically, without any coding!

I do not know if this is feasible using Generic Fixture, nor whether you share the opinion of its importance and potential. I would love to hear your (or anyone else&#039;s) opinion though.

Thanks in advance,
Aristotelis.</description>
		<content:encoded><![CDATA[<p>Dear Anubhava,</p>
<p>I understand that you have not replied to the previous message and I would not like to insist on issues that may require great effort to implement or that simply are not within the strategy of the Generic Fixture, but I have another suggestion that I believe can bring huge advantages.</p>
<p>Would you consider enabling the DSL to construct &#8216;groups of actions&#8217;? DSL defined &#8216;multi-commands&#8217;, which would be just like any other, however these would execute a series of calls instead of just one.</p>
<p>The way to implement it and the actual syntax could take many forms, here is a (silly) example:</p>
<p>!| DSL Adapter |<br />
| open browser, go to url | % | and fetch the title | StartMultiCommand | {1} |<br />
| user starts the browser | start | |<br />
| user opens the URL | % | open | {1} |<br />
| retValue=page has the title | getTitle | |<br />
| EndMultiCommand | retValue= |</p>
<p>Notice that though one can pass many variables to it, it only returns one result (retValue=)</p>
<p>This could be invoked by the following:</p>
<p>!| Generic Fixture | selenium= |<br />
| open browser, go to url | <a href="http://www.google.com" rel="nofollow">http://www.google.com</a> | and fetch the title |  | Google |</p>
<p>and if the previous post is also accepted, then the first line (defining selenium as the object) can be hidden in the DSL definitions of the individual commands and hence leaving for the test narrative only the second line:</p>
<p>| open browser, go to url | <a href="http://www.google.com" rel="nofollow">http://www.google.com</a> | and fetch the title |  | Google |</p>
<p>Obviously much better examples can be easily thought of, but I think that the benefit is more than obvious: achieving a light-weight, natural-language, executable test narrative that can be easily implemented and maintained, practically, without any coding!</p>
<p>I do not know if this is feasible using Generic Fixture, nor whether you share the opinion of its importance and potential. I would love to hear your (or anyone else&#8217;s) opinion though.</p>
<p>Thanks in advance,<br />
Aristotelis.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aristotelis</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-66</link>
		<dc:creator>Aristotelis</dc:creator>
		<pubDate>Tue, 07 Jul 2009 21:00:17 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-66</guid>
		<description>Dear Anubhava,

Thank you for your reply, and no it was not too long, it was all needed for me to understand.

I see your dilemma (&#039;to flow or not to flow&#039;...) and I have an idea that may be of interest to  you.

What if you define in the DSL, for each command/lemma,  the fixture that it belongs to?

This way each lemma would be uniquely identified and the natural language on the test script would not be harmed.


Exampe:

&#124; user opens the URL &#124; % &#124; sel= &#124; open &#124; {1} &#124;

Alternatively this could be also done in groups, example:

!&#124; DSL Adapter &#124; sel= &#124;
&#124; user starts the browser &#124; start &#124; &#124;
&#124; user opens the URL &#124; % &#124; open &#124; {1} &#124;

!&#124; DSL Adapter &#124; myClass= &#124;
&#124; friendly name &#124; % &#124; and &#124; %&#124; myFriendlyFunc &#124; {1},{2} &#124;
&#124; other name &#124; % &#124; and &#124; %&#124; myOhterFunc &#124; {1},{2} &#124;


I do not know whether these are implementable, but if they are I&#039;d think they would be of great interest to many.

thanks,
Aristotelis.</description>
		<content:encoded><![CDATA[<p>Dear Anubhava,</p>
<p>Thank you for your reply, and no it was not too long, it was all needed for me to understand.</p>
<p>I see your dilemma (&#8216;to flow or not to flow&#8217;&#8230;) and I have an idea that may be of interest to  you.</p>
<p>What if you define in the DSL, for each command/lemma,  the fixture that it belongs to?</p>
<p>This way each lemma would be uniquely identified and the natural language on the test script would not be harmed.</p>
<p>Exampe:</p>
<p>| user opens the URL | % | sel= | open | {1} |</p>
<p>Alternatively this could be also done in groups, example:</p>
<p>!| DSL Adapter | sel= |<br />
| user starts the browser | start | |<br />
| user opens the URL | % | open | {1} |</p>
<p>!| DSL Adapter | myClass= |<br />
| friendly name | % | and | %| myFriendlyFunc | {1},{2} |<br />
| other name | % | and | %| myOhterFunc | {1},{2} |</p>
<p>I do not know whether these are implementable, but if they are I&#8217;d think they would be of great interest to many.</p>
<p>thanks,<br />
Aristotelis.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anubhava</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-65</link>
		<dc:creator>anubhava</dc:creator>
		<pubDate>Tue, 07 Jul 2009 01:24:22 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-65</guid>
		<description>Dear  Aristotelis,

I have uploaded my DSL definition for Selenium API in this Blog post. This doesn&#039;t cover Selenium API completely but it has been sufficient for my needs. Please feel free to add whatever you find missing in this DSL definition set.

Now about your suggestion about avoiding use of:
!&#124; Generic Fixture &#124; selenium= &#124;

You may know that all &quot;flow type&quot; fixtures such as DoFixture have this capability where you specify name of your DoFixture only once on a page. I have actually thought about it many times on similar lines but stopped short of modifying &quot;Generic Fixture&quot; code to provide this ability. Let me try to explain why.

Underlying Fixture framework expects the name of the Java Class in the first cell of the first row of the table. That Java class is instantiated by Fitnesse framework and becomes system under test (SUT). Rest of the code in the table is interpreted by that class only. But &quot;Generic Fixture&quot; even though acts as SUT for underlying framework is actually is a broker that executed methods of the class name you provide to GenericFixture (for example com.thoughtworks.selenium.DefaultSelenium or as a variable selenium=

So actual SUT is Selenium not GenericFixture. At present GenericFixture supports you to change this real SUT multiple times in different table on same page for complex testing scripts.

If I make GenericFixture a &quot;flow type&quot; fixture then you will be able to execute methods of ONLY one class on a page such as Selenium. But in most of the real life test scripts using GenericFixture, testers use various other Java classes such as String or Decimal or BeanShell to get better assertion support. Many of my own test scripts involve hitting a database using a SQL query after posting some data from web form to verify that data has been stored in database correctly. 

Sorry for the long answer but I hope you got my point. But I must say you have raised a veery valid issue. And now I have started thinking that may be give this option to end user if he/she wants &quot;flow type&quot; behavior or not on a SetUp page or at the top of the page. I will start researching this option as soon as I get some free time.

cheers,
Anubhava</description>
		<content:encoded><![CDATA[<p>Dear  Aristotelis,</p>
<p>I have uploaded my DSL definition for Selenium API in this Blog post. This doesn&#8217;t cover Selenium API completely but it has been sufficient for my needs. Please feel free to add whatever you find missing in this DSL definition set.</p>
<p>Now about your suggestion about avoiding use of:<br />
!| Generic Fixture | selenium= |</p>
<p>You may know that all &#8220;flow type&#8221; fixtures such as DoFixture have this capability where you specify name of your DoFixture only once on a page. I have actually thought about it many times on similar lines but stopped short of modifying &#8220;Generic Fixture&#8221; code to provide this ability. Let me try to explain why.</p>
<p>Underlying Fixture framework expects the name of the Java Class in the first cell of the first row of the table. That Java class is instantiated by Fitnesse framework and becomes system under test (SUT). Rest of the code in the table is interpreted by that class only. But &#8220;Generic Fixture&#8221; even though acts as SUT for underlying framework is actually is a broker that executed methods of the class name you provide to GenericFixture (for example com.thoughtworks.selenium.DefaultSelenium or as a variable selenium=</p>
<p>So actual SUT is Selenium not GenericFixture. At present GenericFixture supports you to change this real SUT multiple times in different table on same page for complex testing scripts.</p>
<p>If I make GenericFixture a &#8220;flow type&#8221; fixture then you will be able to execute methods of ONLY one class on a page such as Selenium. But in most of the real life test scripts using GenericFixture, testers use various other Java classes such as String or Decimal or BeanShell to get better assertion support. Many of my own test scripts involve hitting a database using a SQL query after posting some data from web form to verify that data has been stored in database correctly. </p>
<p>Sorry for the long answer but I hope you got my point. But I must say you have raised a veery valid issue. And now I have started thinking that may be give this option to end user if he/she wants &#8220;flow type&#8221; behavior or not on a SetUp page or at the top of the page. I will start researching this option as soon as I get some free time.</p>
<p>cheers,<br />
Anubhava</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aristotelis</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-64</link>
		<dc:creator>Aristotelis</dc:creator>
		<pubDate>Mon, 06 Jul 2009 09:35:34 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-64</guid>
		<description>Hi Anubhava,

Thanks for your reply and great attitude.

I have one more question that may be of interest to more people.

Considering that the main advantage and added value is the &#039;almost natural language&#039; in which the tests are written, 

we&#039;d like to know if it is possible to omit the
!&#124; Generic Fixture &#124; selenium= &#124;
from the beginning of each table. 

Is there a way to make it the &#039;default&#039; or just write it once at the beginning of the document?

Thanks again.</description>
		<content:encoded><![CDATA[<p>Hi Anubhava,</p>
<p>Thanks for your reply and great attitude.</p>
<p>I have one more question that may be of interest to more people.</p>
<p>Considering that the main advantage and added value is the &#8216;almost natural language&#8217; in which the tests are written, </p>
<p>we&#8217;d like to know if it is possible to omit the<br />
!| Generic Fixture | selenium= |<br />
from the beginning of each table. </p>
<p>Is there a way to make it the &#8216;default&#8217; or just write it once at the beginning of the document?</p>
<p>Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anubhava</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-62</link>
		<dc:creator>anubhava</dc:creator>
		<pubDate>Fri, 03 Jul 2009 15:32:47 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-62</guid>
		<description>Dear  Aristotelis,

Thanks for your great feedback. I will upload my selenium DSL definition that I use for my own testing very soon.

Thanks,
Anubhava</description>
		<content:encoded><![CDATA[<p>Dear  Aristotelis,</p>
<p>Thanks for your great feedback. I will upload my selenium DSL definition that I use for my own testing very soon.</p>
<p>Thanks,<br />
Anubhava</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aristotelis</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-61</link>
		<dc:creator>Aristotelis</dc:creator>
		<pubDate>Fri, 03 Jul 2009 14:39:21 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-61</guid>
		<description>Hi Anubhava,

Great work on the generic fixture!

Does anyone know if there is an already created DSL definition of many (or all) of the Selenium commands? 

We have been exploring tools such as WebTest, Fitnium and now we have discovered the Generic Fixture!

We are interested in using it in conjunction with Selenium RC.
We followed your instructions and we even mapped a few Selenium commands to our DSL which was great!

We think that such a pre-made list would be very helpful and a great kick-starter as well for most of the cases.

Thanks and keep up the great work!</description>
		<content:encoded><![CDATA[<p>Hi Anubhava,</p>
<p>Great work on the generic fixture!</p>
<p>Does anyone know if there is an already created DSL definition of many (or all) of the Selenium commands? </p>
<p>We have been exploring tools such as WebTest, Fitnium and now we have discovered the Generic Fixture!</p>
<p>We are interested in using it in conjunction with Selenium RC.<br />
We followed your instructions and we even mapped a few Selenium commands to our DSL which was great!</p>
<p>We think that such a pre-made list would be very helpful and a great kick-starter as well for most of the cases.</p>
<p>Thanks and keep up the great work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stuart Taylor</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-29</link>
		<dc:creator>Stuart Taylor</dc:creator>
		<pubDate>Tue, 10 Jun 2008 10:29:56 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-29</guid>
		<description>Hi Anubhava,

as soon as i looked at Fitnesse i disliked the idea of every test potentially requiring code to be written. 
If we have testers writing code who tests the testers tests? 
If we let the developers write the tests then where is our tester independence?

After few small problems (thank you sourceforge) i have your genericfixture and the DSL adapter working, and its exactly what i wanted to accomplish, thank you anubhava.


Stuart.</description>
		<content:encoded><![CDATA[<p>Hi Anubhava,</p>
<p>as soon as i looked at Fitnesse i disliked the idea of every test potentially requiring code to be written.<br />
If we have testers writing code who tests the testers tests?<br />
If we let the developers write the tests then where is our tester independence?</p>
<p>After few small problems (thank you sourceforge) i have your genericfixture and the DSL adapter working, and its exactly what i wanted to accomplish, thank you anubhava.</p>
<p>Stuart.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Rakowski</title>
		<link>http://anubhava.wordpress.com/2008/03/26/introducing-dsl-adapter-for-generic-fixture/#comment-14</link>
		<dc:creator>Jason Rakowski</dc:creator>
		<pubDate>Thu, 27 Mar 2008 03:30:33 +0000</pubDate>
		<guid isPermaLink="false">http://anubhava.wordpress.com/?p=18#comment-14</guid>
		<description>Good Layout and design.  I like your blog.  I just added your RSS feed to my Google News Reader.  .

Jason Rakowski</description>
		<content:encoded><![CDATA[<p>Good Layout and design.  I like your blog.  I just added your RSS feed to my Google News Reader.  .</p>
<p>Jason Rakowski</p>
]]></content:encoded>
	</item>
</channel>
</rss>
