2
|
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. |