There are several test scopes and responsibilities to consider. The following will introduce the different scopes the rest of this chapter will cover.
Certain namings, such as integation tests, are used ambiguously in various enterprise projects. This sub-chapter defines consistent test scope names that are used for the rest of this book.
Unit tests verify the behavior of individual units of an application. A unit test usually represents a single class, in some cases a few interdependent classes.
Unit tests operate on code level. They are usually executed in the IDE during development as well as part of the build process before the application is packaged. Unit tests have the shortest execution time of all test scopes. They only execute limited functionality that can be instantiated easily on code level. Potential dependencies of the units are simulated using mocks or dummy classes.