Unit Tests are primarily written as a good practice to help developers identify and
fix bugs, to refactor code and to serve as documentation for a unit of software under
test. To achieve these benefits, unit tests ideally should cover all the possible paths in
a program. One unit test usually covers one specific path in one function or method.
However a test method is not necessary an encapsulated, independent entity. Often
there are implicit dependencies between test methods, hidden in the implementation
scenario of a test.