How to create regression tests for JavaBeans ============================================ All regression tests are developed to run under JavaTest 3.2.2. TEST HIERARCHY -------------- You should choose an appropriate folder from the following list: - The Beans folder contains tests for the java.beans.Beans class - The EventHandler folder contains tests for the java.beans.EventHandler class - The Introspector folder contains tests for introspection - The PropertyChangeSupport folder contains tests for the bound properties - The VetoableChangeSupport folder contains tests for the constrained properties - The PropertyEditor folder contains tests for all property editors - The Statement folder contains tests for statements and expressions - The XMLDecoder folder contains tests for XMLDecoder - The XMLEncoder folder contains tests for XMLEncoder - The Performance folder contains manual tests for performance - The beancontext folder contains tests for classes from the java.beans.beancontext package NAME CONVENTIONS FOR TEST CLASSES --------------------------------- Usually a class name should start with the "Test" word followed by 7-digit CR number. For example: Beans/Test4067824.java If your test contains additional files you should create a subfolder with the CR number as its name. For example: Introspector/4168475/Test4168475.java Introspector/4168475/infos/ComponentBeanInfo.java If you have several tests for the same CR number you should also create a subfolder with the CR number as its name. For example: XMLEncoder/4741757/AbstractTest.java XMLEncoder/4741757/TestFieldAccess.java XMLEncoder/4741757/TestSecurityManager.java XMLEncoder/4741757/TestStackOverflow.java Every JAR file should contain source files for all class files. For example: XMLDecoder/4676532/test.jar#test/Test.class XMLDecoder/4676532/test.jar#test/Test.java USEFUL UTILITY CLASSES ---------------------- For Introspector tests you can use the BeanUtils class. This class provides helpful methods to get property descriptors for the specified type. For XMLEncoder tests you can use the AbstractTest class. This class is intended to simplify tests creating. It contains methods to encode an object to XML, decode XML and validate the result. The validate() method is applied to compare the object before encoding with the object after decoding. If the test fails the Error is thrown. 1) The getObject() method should be implemented to return the object to test. This object will be encoded and decoded and the object creation will be tested. 2) The getAnotherObject() method can be overridden to return a different object to test. If this object is not null it will be encoded and decoded. Also the object updating will be tested in this case. The test() method has a boolean parameter, which indicates that the test should be started in secure context.