There are two aspects regarding the Test Stub: the degree of emulation and the lifecycle. Given the test's scope and
goals, a stub's implementation could range from just an almost empty class which complies with a set of interfaces to a
full-blown emulator which will perform very close to the real component in terms of functionality. Except for the
simple throwaway tests, the stubs will have the same lifecycle as the components under test, therefore in most of the
cases they need to be treated the same as product code.