Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spock vs FitNesse

I've been looking into Spock and I've had experience with FitNesse. I'm wondering how would people choose one over the other - if they appear to be addressing the same or similar problem space.

Also for the folks who have been using Spock or other groovy code for tests, do you see any noticeable performance degradation? Tests are supposed to give immediate feedback - as we know that if the tests take longer to run, the developer tends to run them less frequently - so I'm wondering if the reduction in speed of test execution has had any impact in the real world.

Thanks

like image 656
KumarM Avatar asked Jul 10 '11 20:07

KumarM


People also ask

What is FitNesse framework?

FitNesse is a web server, a wiki and an automated testing tool for software. It is based on Ward Cunningham's Framework for Integrated Test and is designed to support acceptance testing rather than unit testing in that it facilitates detailed readable description of system function. FitNesse.

How do I run a FitNesse test?

To open FitNesse, open your browser and type: http://localhost:<portnumber>. In this case, the port number is 2222. So here, if you can see the Tests dropdown, we can create a “Suite page” as well as a “Test Page”. When you create a suite, all the test scripts within that suite will be executed.

How do I set up FitNesse?

Installing FitNesse Below are the steps to install FitNesse: Download the most recent version from http://www.fitnesse.org/FrontPage.FitNesseDevelopment.DownLoad. Run “java -jar fitnesse.org”. FitNesse will extract itself and will try to run itself on port 80.


1 Answers

I am no FitNesse guy, so please take what I say with a grain of salt. To me it seems what FitNesse is trying to do is to provide a programming language independent environment to specify tests. They use it to have a more visual interface with the programmer. In Spock a Groovy ast transform is used to transform the table into a groovy program.

Since you basically stay in a programming language it is in Spock more easy to realize more complicated test setups. As a result you often seem to have to write fixture code in FitNesse.

I personally don't need a test execution button, I like the direct approach. I like not having to take of even more classes, only to enable testing and I like looking at the code directly. For example I want to just execute my test from the command line, not from a web interface. That is surely possible in FitNesse too, but as a result the whole visual thing FitNesse is trying to give the user is just ballast for me. That's why I would choose Spock over FitNesse.

The advantage of the language agnostic approach is of course, that a lot of test specifications can be used for Java and for .Net. so if that is a requirement for you, you may want to judge different. It usually is not to me.

As for performance, I would not worry too much about that part.

like image 94
blackdrag Avatar answered Oct 21 '22 13:10

blackdrag