When you launch a test, the %UnitTest.TestProduction TestControl method executes. This method starts and stops the production being tested and also invokes a series of callback methods. These callback methods do most of the work of the test, including tasks like the following:
Preparing an environment for the production, for example, initializing directories and the production's configuration settings.
Sending input to the running production and its components, for example, placing input files in the appropriate directories and sending production messages to individual components.
Examining the output as well as any errors generated by the running production.
Examining the contents of the Event Log and the database as well as verifying the contents of any files produced by the production.
Your test class will be a subclass of %UnitTest.TestProduction. The majority of the work in creating a test for a production will involve overriding the callback methods invoked by TestControl.
There are a variety of ways to launch a test. These are discussed later in the tutorial.
When you create production tests you do not implement any TestX methods. In this way creating production tests with %UnitTest.TestProduction differs significantly from creating tests using %UnitTest.TestCase.