jdk/test/java/beans/README
changeset 2 90ce3da70b43
child 32427 c22b7e41adf3
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 How to create regression tests for JavaBeans
       
     2 ============================================
       
     3 
       
     4 All regression tests are developed to run under JavaTest 3.2.2.
       
     5 
       
     6 
       
     7 
       
     8 TEST HIERARCHY
       
     9 --------------
       
    10 
       
    11 You should choose an appropriate folder from the following list:
       
    12  - The Beans folder contains tests for the java.beans.Beans class
       
    13  - The EventHandler folder contains tests for the java.beans.EventHandler class
       
    14  - The Introspector folder contains tests for introspection
       
    15  - The PropertyChangeSupport folder contains tests for the bound properties
       
    16  - The VetoableChangeSupport folder contains tests for the constrained properties
       
    17  - The PropertyEditor folder contains tests for all property editors
       
    18  - The Statement folder contains tests for statements and expressions
       
    19  - The XMLDecoder folder contains tests for XMLDecoder
       
    20  - The XMLEncoder folder contains tests for XMLEncoder
       
    21  - The Performance folder contains manual tests for performance
       
    22  - The beancontext folder contains tests for classes
       
    23    from the java.beans.beancontext package
       
    24 
       
    25 
       
    26 
       
    27 NAME CONVENTIONS FOR TEST CLASSES
       
    28 ---------------------------------
       
    29 
       
    30 Usually a class name should start with the "Test" word
       
    31 followed by 7-digit CR number. For example:
       
    32 	Beans/Test4067824.java
       
    33 
       
    34 If your test contains additional files you should create
       
    35 a subfolder with the CR number as its name. For example:
       
    36 	Introspector/4168475/Test4168475.java
       
    37 	Introspector/4168475/infos/ComponentBeanInfo.java
       
    38 
       
    39 If you have several tests for the same CR number you should also
       
    40 create a subfolder with the CR number as its name. For example:
       
    41 	XMLEncoder/4741757/AbstractTest.java
       
    42 	XMLEncoder/4741757/TestFieldAccess.java
       
    43 	XMLEncoder/4741757/TestSecurityManager.java
       
    44 	XMLEncoder/4741757/TestStackOverflow.java
       
    45 
       
    46 Every JAR file should contain source files for all class files. For example:
       
    47 	XMLDecoder/4676532/test.jar#test/Test.class
       
    48 	XMLDecoder/4676532/test.jar#test/Test.java
       
    49 
       
    50 
       
    51 
       
    52 USEFUL UTILITY CLASSES
       
    53 ----------------------
       
    54 
       
    55 For Introspector tests you can use the BeanUtils class.
       
    56 This class provides helpful methods to get
       
    57 property descriptors for the specified type.
       
    58 
       
    59 
       
    60 For XMLEncoder tests you can use the AbstractTest class.
       
    61 This class is intended to simplify tests creating.
       
    62 It contains methods to encode an object to XML,
       
    63 decode XML and validate the result.
       
    64 The validate() method is applied to compare
       
    65 the object before encoding with the object after decoding.
       
    66 If the test fails the Error is thrown.
       
    67 1) The getObject() method should be implemented
       
    68    to return the object to test.
       
    69    This object will be encoded and decoded
       
    70    and the object creation will be tested.
       
    71 2) The getAnotherObject() method can be overridden
       
    72    to return a different object to test.
       
    73    If this object is not null it will be encoded and decoded.
       
    74    Also the object updating will be tested in this case.
       
    75 The test() method has a boolean parameter,
       
    76 which indicates that the test should be started in secure context.