-
Defines a set of tests to run sequentially:
Each test is the combination of a test driver, that implements an ITest interface, and the production code it tests.
We want to chain multiple tests to be executed in sequence. We expect to save that sequence and add additional
tests later, as the development of the code continues.
-
Provides exception-safe test execution:
Each test is to be run inside a try-catch block, used to handle exceptions thrown by the test. A thrown exception
does not stop testing of the sequence. Instead, it results in a fail result for the test that threw the exception.
Also, we want to insert each test into a single try-catch block so we don't have to litter our test drivers with
a lot of exception handling. We will discuss how to do that in class.
-
Supports logging test results:
The results of testing need to be reported to the person executing the tests. We will do that with a Logger class
that supports concurrently writing results into one or more output streams, e.g., to the console and a file or database for storage.