Yeah, unit tests are best done with the underlying objects rather than the
GUI itself. Testing the GUI is hard - but that's OK, as testing the non-GUI
code is already a great thing to do.

A couple of great books on unit testing:
 - "Working Effectively with Legacy Code" by Michael Feathers
 - "Test-Driven Development" by Kent Beck.

Jon



> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On 
> Behalf Of Sunburned Surveyor
> Sent: Monday, June 25, 2007 11:53 AM
> To: List for discussion of JPP development and use.
> Subject: [JPP-Devel] How do you write a unit test for a 
> method like this?
> 
> 
> I have realized how important unit tests are in my 
> development. This is something I learned the hard way after 
> many hours of debugging something that could have been caught 
> in a unit test.
> 
> However, I seem to be running into an obstacle when I try to 
> write unit tests with a lot of my work for OpenJUMP. It seems 
> that a lot of my methods deal with GUI components or 
> interaction with GUI components, and that the creation of 
> unit tests for these methods would involved either [1] the 
> creation and intialization of a great deal of JUMP's GUI and 
> supprting classes for a single unit test, or [2] the need to 
> create "mock" objects for the unit test that mimic some 
> aspect of these GUI components involved in the test. (Note 
> that these tests must have the same name as the actual JUMP 
> object and must then by necessity be kept in a separate IDE project .
> 
> It seems that at some point I run up against the law of 
> diminishing returns. There is so much effort required to 
> dummy up mock objects for the unit test that I might as well 
> let the live execution of the program be the test itseld. It 
> seems like unit tests are cut out for smaller and less GUI 
> involved methods.
> 
> For example, in my work on the pluggable rendering system for 
> OpenJUMP I have a plug-in that installs a 
> RendererFactoryTool. The initialize() method for that plug-in 
> class obtains an array of child components belonging to the 
> JUMP workbench and then adds a container listener to each of 
> these children that is an instance of the TaskFrame class. 
> Should I be writing a unit test for this method? That is 
> going to involve writing a dummy workbench object and a dummy 
> task frame object. Is this worth the work?
> 
> I'm looking for some general guidelines on when I should 
> write a unit test for GUI-involved methods. I'm hoping some 
> of the more experience OpenJUMP developers may be able to 
> give me some insight on this.
> 
> Thanks,
> 
> The Sunburned Surveyor
> 
> --------------------------------------------------------------
> -----------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and 
> take control of your XML. No limits. Just data. Click to get 
> it now. http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to