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 paramtest
checkget paramtest

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 paramtest
checkget paramtest

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 paramtest
checkget paramtest

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?