Help Organizing Unit Test Data
-
<font face="Arial">Ok, this post is very noob-ish even though I swear I have some clue. Basically I have some hard-coded paths to test data in my unit test classes that I need to remove. The project directories are organized like this:
projectname\test\packagenamepath\test classes for all unit tests
</font><font face="Arial">projectname\test\test-docs for all data needed by the unit tests
Right now the hardcoded paths are "c:....", I thought of relative paths i.e. "../../etc" but if I move a class around in the heirarchy that screws up. It seems silly to read the root dir from a properties file, plus then I need to specify where that is when I use codeguides junit integration or an ant task. I figure there has to be some simple way to solve this problem that I am overlooking that will work even if I move the project to a different drive/directory and that I won't have to maintain. Any suggestions?
</font><font face="Arial">
</font>
-
Well, I dug up the answer to my own question, since "test-docs" is in the class path in each of my tests, I can read in a data file using code like this:
this.getClass().getResourceAsStream("/test-docs/filename");
So now all paths are relative to the root as long as the classpath is set up correctly.