= Unit Tests = ProMoT in its present state is a very complex software. In order to minimize bugs and possible side effects when changing code fragments and improve the overall quality of ProMoT, it is good practice to integrate and run automated tests. [[BR]] For the Java part the JUnit testing framework is a suitable solution. There are already some tests implemented. They are listed in the class !PromotTests see [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/test/PromotTests.java]. [[BR]] As a first step the available tests should be studied. Then some of the following tests (simple, more complex) can be implemented. == ProMoT Browser == * simple tests: * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/browser/CmdAddSubclass.java CmdAddSubclass] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/browser/CmdCopyClass.java CmdCopyClass] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/browser/CmdDelete.java CmdDelete] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/dialogs/CmdCustomizeUndoRedo.java CmdCustomizeUndoRedo] * more complex tests: * testing the import and export functionality of smbl-files ([source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/dialogs/CmdSBMLExport.java CmdSBMLExport] and [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/dialogs/CmdSBMLImport.java CmdSBMLImport]) * testing the import of CNA-files into ProMoT, see [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/dialogs/CmdCNAImport.java CmdCNAImport] == ProMoT Editor == * simple tests: * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/cmds/CmdRename.java CmdRename] (test that all properties of the current slot are conserved) * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/cmds/CmdPropagateTerminal.java CmdPropagateTerminal] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/cmds/CmdDrop.java CmdDrop] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/cmds/CmdInsertLinkNodeInLinkEdge.java CmdInsertLinkNodeInLinkEdge] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/cmds/CmdPropagateBusyTerminal.java CmdPropagateBusyTerminal] * [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/cmds/CmdSetRightStructAdapterType.java CmdSetRightStructAdapterType] * more complex tests: * testing the functionality of the online-checker-system, see source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/checker * testing the docu-generation, see source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/vizedit/docu * testing the functionality of the variable editor, see source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/varedit == ProMoT Explorer == * complex tests: * testing the gef parser, see source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/viznav/data/io/gef * testing import/export of graphml format, see source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/viznav/data/io/graphml == Literature == * [http://open.ncsu.edu/se/tutorials/junit/ Unit Testing in Eclipse Using JUnit] * [http://tfs.cs.tu-berlin.de/lehre/SS05/UML-Java/junit.pdf Testen mit JUnit (German)]