Good Design with Typemock
When starting Typemock, my stand was that testing and design are separate. That you don’t have to change your design in order to be testable, and that your design should be based on the business of your software and not testability. I believed that design and testing tools are two separate issues, and I trusted that developers are good enough to create the best design or refactor to a better design, suitable for the system.
I was wrong.
I have listened to hundreds of our customers around the world and found that some team leaders do not trust their developers to create a good design. I now see that different approaches work for different people and different teams and our customers want a way to restrict their developer until they have enough experience to create great design.
To enable this, Typemock’s newest version of Isolator, now includes Design Mode. Design Mode is available to all, even via our free “Basic” edition of Typemock Isolator, which restricts developers to follow the limitation of mocking via Inversion of Control (IOC) and DI designs.
Sometimes, developers new to unit testing and Test Driven Development need a crutch to learn before diving into the deep end. Design mode gives team leaders the confidence to trust their developers to create good unit tests. It gives the self-assurance to start unit testing and especially Test Driven Development. Like guiderails, first developers can learn with some guidance and borders and, as they get better, and learn the art of designing they can remove them for higher coverage, more powerful testing and testing untestable code.
As the developers gain the confidence, they can then do more powerful unit testing with Typemock’s powerful tools and take advantage of the full benefits of Typemock Isolator Essential or Complete.
Isolator mocking works by default on any method. We call this pragmatic mode, and it is implicitly set by the Isolated attribute. Sometimes, especially when using TDD, you might want to restrict Isolator to mock only virtual methods. You can do this by explicitly setting the Design property of the Isolated attribute to InterfaceOnly. You can set it in any level as you’d use the Isolated attribute: Method, class or assembly. Overriding is possible by explicitly setting Design.Pragmatic, and the closest explicit definition to the test is the one that is used.
For more information on how to use, click here.
Want to start unit testing? Take advantage of our 30-day FREE trial of Isolator Complete. Get it now.