And the Testbed
I decided to build a little utility for running my tests. (The primary reason for that was that I wanted something that was simple and nice to show in a presentation. When I write this, I have only a console application implementation of the testbed, but it takes a matter of minutes to write a Windows Formsbased testbed also.) The design of the testbed is shown in Figure 4.
Figure 4 Design for the testbed.
As you can see in Figure 4, there is one test-driver class (for example, TdDataReader) for each data container to test. As I mentioned before, there is also one service-layer class (for example, FetchingOrderInformation__DataReader) for each data container. The TestBed (UI) class parses (in the console application implementation, at least) the command given at the command line, instantiates the correct test driver, and calls the Execute() method with the current arguments.
I also wrote a small host application for remoting. In that console application, I host the service-layer classes when I run the tests cross-machines.
Most of you probably are less interested in the testbed and more interested in the results, so let's move to that section now. (If you want, you can download the testbed and play with the code.)