The implementation of System Under Test (SUT) that are the target of our unit test can be one of the following
If a function or piece of code is direct implementation, then it will take zero or more inputs and provide some results or cause state change with very little or no dependencies.
Examples of direct implementation
Normally a function or piece of code falls under this type when it gets something done via one or more of its dependencies rather than doing it on its own.
Examples of indirect implementation
We will also come across many SUT where the implementation is combination of both direct and indirect
It is good to be aware of these types because we might need to use different techniques for testing depending on their implementation type.