The best way to learn a tool is to try it, test it and then finally use it over your code. Of course if the tool provides also a great community support and a great documentation the task will be easier.
Some weeks ago we started to adopt a wonderful tool to create mockups and other TDD fancy stuff, the tool is TypeMock.
The idea I got is to create a series of tutorials about TypeMock and provide to you a piece of a code to download a full license of this tool. At the end of the series (probably 1 month) you will be able to enable your 10 days trial into a full working license. I will create a sort of bid and from all my readers that will contact me to get the license I will come up with one or two free licenses.
Guys, consider that one license of TypeMock is 800 $ !!
Setup and Installation
In order to start right away with TypeMock you need to download the latest version of the tool (at this time they have the version 6.0.10) but be careful because they upload new versions often. The product you need to download for .NET is Isolator.NET. They also provide additional tools that we will analyze during this series, like:
- TestDriven.NET, an integrated test runner for Visual Studio
- Isolator for Sharepoint
- Isolator for ASP.NET and ASP.NET MVC
- TeamMate, a useful tool to monitor your TDD approach
- Isolator ++, the same version but for C++
- TestLint, a nice tool that will help you to develop your TDD skill
After you have downloaded the setup (7 Mb) you will have to follow a very straightforward setup wizard with only two options available; use the advanced option and install everything including the samples for .NET.
Thats it, you are now ready to go!
TypeMock is installed on your C: drive and depending on where you choose to install it, you should have a folder called TypeMock/Isolator/6.0 on your Program Files directory. Inside this folder you can find all the assemblies available from TypeMock.
You do not need to use them directly as TypeMock is also installed on your GAC folder but if you plan to work with C.I. (Continuous Integration) you may probably need to add a reference to these files instead of pointing directly to the GAC, depending on what type of build server you are working with
Inside the folder Examples you will find a set of useful examples to start to learn TypeMock quickly but do not worry as I will go through all these examples in this series.
If you want to make your experience with TypeMock easier and smoother, I kindly suggest you to download and install also TestDriven.NET or Resharper with Gallio. I personally use and love Resharper so you will find in this series all the reference examples pointing to the Resharper UI inside Visual Studio. The choice is up to you but I personally believe R# is the best tool so far for Visual Studio (IMHO)
Visual Studio integration
After the installation you can open Visual Studio and this is the surprise you will find in the IDE:
You will find a new menu on Visual Studio called TypeMock; in this menu you can setup the license, the profiler to use with TypeMock and few other options for a better Visual Studio experience.
There arent a lot of other ways to easily configure TypeMock but we will see together how you can tackle each of the common tasks you may encounter while working with TypeMock.
From this menu you have also the easy option of enabling/disabling TypeMock at anytime so that you can or cannot work with it without the need to restarting Visual Studio every time (like you have to do with other plugins of Visual Studio).
The Demo Project
I have created a very small project for this series of tutorials to show you how you can test every single layer of a .NET application using TypeMock to separate the dependencies. The structure of the demo project is in the following way:
The project is composed by 4 different layers:
- TypeMockDemo: the project that contains the Domain Model of the tutorial
- TypeMockDemo.DataLayer: a data layer built around NHibernate 3.2
- TypeMockDemo.ServiceLayer: the service layer used to write the business logic around the domain and the data layer
- TypeMockDemo.UserInterface: an application developed using WPF 4.
For each project there is a corresponding fixtures project that includes all the fixtures related to the project. With fixture I mean test
Tutorials and resources
Before starting to follow this series I kindly suggest you to have a look at the TypeMock web site learning content, so that you will follow better my tutorials. As you know, I do not usually go too deep into a specific topic, so if you need to learn also what TDD is, I kindly suggest you to read also the following tutorials about TDD and testing in general.
TypeMock learning content:
- Introduction to TypeMock http://www.typemock.com/getting-started-step-1-set/
- General articles and web casts http://www.typemock.com/general-unit-testing-pages/
- TypeMock documentation
TDD learning content:
This is a very complete introduction to TDD in .NET
So stay tuned and Ill see you next Friday for the next part of this series.