<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gojko Adzic &#187; slim</title>
	<atom:link href="http://gojko.net/tag/slim/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net</link>
	<description>Building software that matters</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:37:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>FIT vs SLIM</title>
		<link>http://gojko.net/2010/03/12/fit-vs-slim/</link>
		<comments>http://gojko.net/2010/03/12/fit-vs-slim/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 07:59:33 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[fit]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[slim]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1631</guid>
		<description><![CDATA[I got this question from a blog reader recently: I just wanted your opinion on SLIM as opposed to standard FIT/Fitnesse. Are there things that can only be done via the FIT/Fitnesse route that cannot be done via SLIM? So for acceptance tests and integration tests can I just use SLIM? We want to exploit [...]]]></description>
			<content:encoded><![CDATA[<p>I got this question from a blog reader recently:</p>
<blockquote><p>I just wanted your opinion on SLIM as opposed to standard FIT/Fitnesse. Are there things that can only be done via the FIT/Fitnesse route that cannot be done via SLIM? So for acceptance tests and integration tests can I just use SLIM?</p>
<p>We want to exploit the BDD abilities of Scenario tables in SLIM. Ideally I would like to use SLIM to undertake all kinds of tests. I assume it has all the same capabilities? Are there any issues? </p></blockquote>
<p> <span id="more-1631"></span></p>
<p>On the face of it, SLIM seems to be the preferred way forward for new FitNesse implementations as it is being actively developed and maintained by the same folks who develop FitNesse. FIT is a bit of an orphan at the moment, Rick Mugridge and I were talking about taking over that integration and enhancing it.</p>
<p>In terms of features, SLIM gives you better compatibility across platforms because a lot of the test system responsibility has been taken over by FitNesse itself (parsing HTML, deciding how to interpret a table, storing and reading symbol values). <a href="http://gojko.net/2009/04/17/slim-and-the-future-of-fitnesse-video/">Watch this video for more information about the differences in responsibilities</a>.</p>
<p>On the other hand, because of the way SLIM works, fitlibrary flow-mode interaction is practically impossible. Most of my clients still use flow mode tests as that is a great way to write and maintain a very thin fixture layer for complex tests.</p>
<p>SLIM also allows you to use Scenario tables, as you mentioned. Scenario tables give testers a lot more power as they can script multi-step execution and compose lower level fixtures into higher level tables, without involving developers to do the same in fixtures. Depending on your environment and team, this might or might not make sense. For covering and existing system with regression tests, it probably does. For using acceptance tests as a guide for development, beware of overdoing it. I am very concerned about long-term maintenance costs of such tests. What happens in this case is that people are effectively programming with tables &#8211; doing the same in code would allow you to benefit from IDE support for refactoring, file management and all sorts of other things that make IDEs useful. You lose all that by using scenario tables in order to make testers a bit more independent. I would rather suggest training the testers some basic coding skills so that they can write fixtures. </p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/12/fit-vs-slim/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>SLIM and the future of FitNesse &#8211; Video</title>
		<link>http://gojko.net/2009/04/17/slim-and-the-future-of-fitnesse-video/</link>
		<comments>http://gojko.net/2009/04/17/slim-and-the-future-of-fitnesse-video/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 15:04:17 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[skills matter]]></category>
		<category><![CDATA[slim]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=880</guid>
		<description><![CDATA[Here is the video from my recent presentation &#8220;SLIM and the future of FitNesse&#8221;. In this talk, I introduce SLIM, the new FitNesse test runner, compare it to FIT and demonstrate its basic features. You can also download the slides]]></description>
			<content:encoded><![CDATA[<div align="left" style="float:left;border:1px solid black;margin:5px 5px 5px 5px"><object width="300px" height="279px"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4115950&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4115950&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="300px" height="279px"></embed></object></div>
<p>Here is the video from my recent presentation &#8220;SLIM and the future of FitNesse&#8221;. In this talk, I introduce SLIM, the new FitNesse test runner, compare it to FIT and demonstrate its basic features.  You can also <a href="http://gojko.net/resources/slim.pdf">download the slides</a><br />
<br clear="all"/></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/04/17/slim-and-the-future-of-fitnesse-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QCon London 2009: Slides from my talk Slim and the future of FitNesse</title>
		<link>http://gojko.net/2009/03/13/qcon-london-2009-slides-from-my-talk-slim-and-the-future-of-fitnesse/</link>
		<comments>http://gojko.net/2009/03/13/qcon-london-2009-slides-from-my-talk-slim-and-the-future-of-fitnesse/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 10:19:46 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[qcon]]></category>
		<category><![CDATA[slim]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=808</guid>
		<description><![CDATA[Thanks to everyone who attended my presentation Slim and the future of FitNesse at QCon London 2009 today. You can grab the slides from here. I&#8217;m covering QCon in detail on this blog. See other news and reviews from the conference]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who attended my presentation <a href="http://qconlondon.com/london-2009/presentation/Slim+-+the+future+of+FitNesse%2C+Sponsored+by+Skillsmatter">Slim and the future of FitNesse</a> at <a href="/tag/qcon">QCon London 2009</a> today. You can grab the slides from <a href="/resources/slim.pdf">here</a>.</p>
<p><i>I&#8217;m covering QCon in detail on this blog. See <a href="/tag/qcon">other news and reviews</a> from the conference</i> </p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/03/13/qcon-london-2009-slides-from-my-talk-slim-and-the-future-of-fitnesse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upcoming FitNesse talks in London</title>
		<link>http://gojko.net/2009/02/06/upcoming-fitnesse-talks-in-london/</link>
		<comments>http://gojko.net/2009/02/06/upcoming-fitnesse-talks-in-london/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 15:07:53 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[skillsmatter]]></category>
		<category><![CDATA[slim]]></category>

		<guid isPermaLink="false">http://gojko.net/2009/02/06/upcoming-fitnesse-talks-in-london/</guid>
		<description><![CDATA[I&#8217;ll be giving three talks on FitNesse and agile acceptance testing over the next few months &#8211; if you are in London, you might want to come by (and say hi and have a beer after the event). FitNesse.NET tips and tricks The talk will cover best practices, common pitfalls and some advanced techniques for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be giving three talks on FitNesse and agile acceptance testing over the next few months &#8211; if you are in London, you might want to come by (and say hi and have a beer  after the event).</p>
<h2>FitNesse.NET tips and tricks</h2>
<p>The talk will cover best practices, common pitfalls and some advanced techniques for using FitNesse in the .NET environment that will help you save time and effort when writing and automating acceptance tests. This is a session for .NET developers with some previous exposure to FitNesse.</p>
<p>Skills Matter, Feb 17th: <a href="http://skillsmatter.com/event/open-source-dot-net/fitnessedot-net-tips-and-tricks<br />
">click here to register</a> </p>
<h2>Slim &#8211; The future of FitNesse</h2>
<p>This talk will introduce Slim, the most important upgrade to FitNesse in years. Slim is the new test runner which promises to bring platform interoperability, easier integration, a much simpler programming model and lots of small helpers that will allow us to write and maintain executable specifications and acceptance tests easier. This is a session for .NET and Java developers. Some prior exposure to FitNesse and FIT would be beneficial, but not required.</p>
<p>QCon London, March 13th <a href="http://tinyurl.com/cqr5zs">more info</a></p>
<p>Repeated at skills matter on April 2nd: <a href="http://skillsmatter.com/event-details/home/slim-the-future-of-fitnesse">click here to register</a></p>
<p>The two events at skills matter are free but up-front registration is required for capacity planning.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/02/06/upcoming-fitnesse-talks-in-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transactional Spring/Slim test runner</title>
		<link>http://gojko.net/2009/01/14/transactional-springslim-test-runner/</link>
		<comments>http://gojko.net/2009/01/14/transactional-springslim-test-runner/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 16:09:48 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[slim]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=615</guid>
		<description><![CDATA[Here&#8217;s an implementation of the Slim test runner for Fitnesse that wraps all tests into spring transactions and rolls back on the end of each test, to make data-driven tests instantly repeatable with minimal code and no configuration changes in the fixtures or the Spring context. binaries (compiled against spring 2.5.5 and fitnesse 20090112) source [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an implementation of the Slim test runner for Fitnesse that wraps all tests into spring transactions and rolls back on the end of each test, to make data-driven tests instantly repeatable with minimal code and no configuration changes in the fixtures or the Spring context.<span id="more-615"></span></p>
<ul>
<li><a href='/resources/transactionalrunner-1.0.2.jar'>binaries</a>  (compiled against spring 2.5.5 and fitnesse 20090112)</li>
<li><a href='/resources/transactionalrunner-1.0.2-src.zip'>source code</a></li>
</ul>
<h2>Usage</h2>
<ol>
<li>Include the transactionalrunner-1.0.2.jar in your classpath</li>
<li>Include Spring, all other dependencies etc in your classpath</li>
<li>Have your spring context file accessible (ideally in the classpath or on the file system). Make sure to have a transaction manager defined there and the <b>tx:annotation-driven</b> tag set up correctly to link to the transaction manager</li>
<li>Set the test runner configuration in your test suite (it&#8217;s not going to work if it is in SetUp):
<pre style="overflow: auto; font-size:12px">
!define TEST_SYSTEM {slim}
!define TEST_RUNNER {info.fitnesse.TransactionalSlimService}
!define COMMAND_PATTERN {java  -Dspring.context=classpath:spring.xml -cp %p %m -v}
</pre>
<p>the <b>-v</b> on the end is optional and causes lots of debug messages to be printed out. You should see &#8220;rolling back now&#8221; after every test in the suite. You can set the location of your basic spring context file by defining the <b>spring.context</b> parameter as in the example above. Use standard spring locator prefixes for that.</li>
<li>Change your fixtures to use <b>info.fitnesse.FitnesseSpringContext.getInstance()</b> as the spring context rather than loading it yourself. You can use autowirable bean factories from there on.</li>
<li>Run your tests as nornal. The spring transaction context will roll back after each test</li>
</ol>
<h2>How it works</h2>
<p>The test runner loads your spring context file (from the <b>spring.context</b> system variable) and then injects an additional test runner bean into the context, making it available through the static <b>info.fitnesse.FitNesseSpringContext</b> instance.</p>
<p>Instead of directly executing instructions in <b>processTheInstructions(String instructions)</b>, this test runner delegates the call to a Spring bean which is transactional, so the call passes the declarative transactional boundary for each test. The Spring bean throws an exception that causes the transaction to roll back on the end of each test and the test runner catches and ignores that exception. This uses the same idea as in <a href="http://gojko.net/2008/01/22/spring-rollback/">The magic ingredient for the FitNesse, Spring and Hibernate TDD soup</a>, but applied to Slim. (hint: you can use the same jar to run normal fitnesse tests, just change <b>TEST_SYSTEM</b> to <b>FIT</b> and <b>TEST_RUNNER</b> to <b>info.fitnesse.TransactionalFitServer</b>).</p>
<p>The rollback bean is loaded from an spring context file embedded in transactionalrunner.jar so you are not required to change anything within your spring context. The only possible problem is if there is already a bean called &#8220;rollbackBean&#8221; defined there. The embedded context doesn&#8217;t have any transaction managers or anything else defined, so it expects all that to be defined outside.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/01/14/transactional-springslim-test-runner/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
