The ease with which users can assemble composite applications from components increases the need to unit test your components before users use them. This article, fourth in our series on composite applications, describes how to test your components prior to assembling composite applications.
Unit testing
The creation of composite applications differs from traditional application development in one important way: The development effort occurs in two stages. First, components are written, and then later are assembled into applications. This approach has several advantages. Because components can be reused in multiple ways, you optimize your effort with a "build once, use many" approach. Second, the task of assembling components is not as technical as building components, so a broader mix of people can be involved in the process. As a result, application development is brought closer to the end user, which yields application designs that build more upon domain expert knowledge.
With these advantages, though, come concerns that must be addressed. Because components are not custom built for specific uses, you must attempt to anticipate all scenarios. Because composite applications are being assembled later in the process by less technical people, components must behave consistently and predictably. Components should also have good documentation describing the valid values to pass to their interfaces.
One essential approach to ensure the successful development and deployment of components is unit testing. If the components are guaranteed to work well before they are deployed, there will be fewer problems and less frustration in the field when they are put together, providing a better and more cost-effective experience for all.
To read the entire article, see Designing composite applications: Unit testing on the developerWorks website.
Editor's note: This article is the fourth in a series of articles on composite applications to be published on developerWorks Lotus over the next few months. See the other developerWorks articles, "The Lead Manager application in IBM Lotus Notes V8: An Overview," "Designing composite applications: Component design," "Designing composite applications: Design patterns," "Designing composite applications: Writing an Eclipse component for IBM Lotus Notes", and "Designing composite applications: IBM Lotus Notes components".