Infurination: Unwritten Rules

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"; //this.param;

}
}

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?