Having just recently installed VS 2012 Ultimate, I naturally wanted to unit test a program I had begun coding. Being a big fan of Dependency Injection and mocking, my first instinct was to Nuget up a reference to Moq in my test project. I began to wonder what other options I might have new to me with VS 2012, and remembered reading that VS 2012 has natively subsumed the Moles Framework, and renamed it Microsoft Fakes after some modifications.

I was initially excited to try out Fakes, with the intention of using it with my team at work, once everyone, and our projects were upgraded to VS 2012. That excitement soon turned to disappointment when I found out that Microsoft Fakes is only supported on VS 2012 Ultimate. This is confusing, since pre-release information suggests that Fakes are available for Premium as well as Ultimate. See StackOverflow user Chai’s response to user Dan Sorensen’s question about adding a Fakes assembly to VS 2012 Professional RC. Chai asked a similar question on Microsoft’s Connect portal - possibly here - and the answer was disconcerting.

The RC documentation was incorrect. Fakes are available only in VS Ultimate.

Unit testing should be integral to any software development team. The barrier to entry to testing technologies should be as low as possible. I can understand having tiered versions of Visual Studio, and that not every developer is going to need to create architectural layer diagrams. That makes sense. What also makes sense is that every developer should be writing unit tests.

Unit testing is something that is so foundational to development, that unit testing functionality, and by extension, functionality that enables unit testing, like Microsoft Fakes, should be available to all editions of Visual Studio.

Not everyone on my team has Visual Studio Ultimate. This means that they are unable to use Microsoft Fakes. This discourages the use of Fakes by the developers with Ultimate. I’m not going to push to get all my coworkers Ultimate. They shouldn’t need Ultimate.

While I am currently disappointed and discouraged by Microsoft’s decision, I am hopeful that Microsoft will reverse course and enable Fakes in versions of Visual Studio 2012 other than Ultimate.