I was messing around with FitNesse again today, and I decided to just get a simple test case running to see how well it worked.
This was my fixture:
package fitlibrary; public class Test extends DoFixture{ public String param; public Test(){ } public String setParam(String param){ this.param = param; return param; } public String getParam() { return "test"; } }
Simple enough, right? I put down a very simple table:
fitlibrary.Test | ||
set param | test | |
check | get param | test |
No way would this guy work. I kept getting “Missing class or missing method”. I gave up for a while, moving on to other, more productive (or at least less brick-wall-ish) work. Somewhere in there it occurred to me that there was a very small possibility that fitlibrary already had a Test or TestFixture class and a collision was causing my issue.
I renamed my class to MGBTest, which I’m reasonably certain won’t exist in fitnesse or fitlibrary:
fitlibrary.MGBTest | ||
set param | test | |
check | get param | test |
Same error. Frustrated, I went away for a while again.
Finally, at 5PM, I decided to move the class to a new package, mgblib:
mgblib.MGBTest | ||
set param | test | |
check | get param | test |
After this change, my test worked exactly as it was supposed to. So my new point of curiosity is this: What exactly is going on in the fitlibrary.jar that it has this behaviour? Is this my .NET background getting in my way? Are you not able to extend/span packages across multiple JARs? Or is this something that fitlibrary is doing just to mess with me?