In the previous post I described the concept of inversion of control and how to decouple classes from their dependencies using interfaces. The objective of doing this is to make the business logic more testable, which now brings us to testing. However, before I jump into mocking ArcObjects code, in this post I will discuss the structure of tests, which will give some context to the unit tests I will discuss in the next topic.