3789983e89
Reviewed-by: darcy, ihse
77 lines
2.8 KiB
Plaintext
77 lines
2.8 KiB
Plaintext
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.
|